- ベストアンサー
ファイルから読み取った「行の長さ」は・・?
すみません。 while (fgets(buff, 256, pFile) != NULL) { ~~~ } として1行ずつファイルを読み込み、その中で1文字ずつ処理する為に 必要なforループのループ回数を得たいのですが・・ char buff[256]; // 先に確保した配列を、fgetsした後に int buff_length = sizeof(buff) /sizeof(buff[0]); // 長さを得ようとする こうすると確保したサイズ256が返ってきてしまい困っています。(当然かもですが・・ ファイルの1行の長さを毎回取得する方法は無いでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
文字列町ならstrlenでは?
その他の回答 (2)
- jacta
- ベストアンサー率26% (845/3158)
回答No.3
char *p = strchr(buf, '\n'); if (p != NULL) buff_length = p - buf; else /* 行の途中で切れた */ といった感じでどうでしょうか? なお、上記では、行末の改行文字を長さに含んでいません。
質問者
お礼
ありがとうございます。 処理の参考にさせて頂きます。
- nagare
- ベストアンサー率33% (280/831)
回答No.2
使う関数は sizeof() じゃなくて strlen() ですよ また、改行コードも含まれますので、-1が必要と思います
質問者
お礼
改行コードの存在・・すっかり忘れていました、 ありがとうございます。 orz
お礼
ありがとうございます。 ブランクが有ったせいか、存在をすっぽり忘れてました・・ orz