• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c言語 文字数のカウント 合わない)

C言語文字数カウントの疑問:文字数が合わない?

このQ&Aのポイント
  • C言語のプログラムで、data.txtに書かれている文字を読み取り、総文字数、スペース、タブ、ニューラインの数をカウントしようとしています。
  • スペース、タブ、ニューラインは正しくカウントするのですが、総文字数char_counterの数が合いません。
  • ファイルから文字を読み取る時に使ったloop_counterもchar_counterと同義だと思いloop_counterを表示させてみたところ、こちらは文字数を正しくカウントしているようです。しかし、char_counterとloop_counterで違う値が出てしまいます。解答をお待ちしております。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

余談: read_line[loop_counter] = getc(fp) は典型的な「やってはいけない」パターンだし, #define EXIT_FAILURE (1) の必要性が理解できない (これ, 未定義動作にならないか?). あと, EXIT_FAILURE を使うなら EXIT_SUCCESS を使ってあげてもいいんじゃないかなと思う今日この頃.

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

さらに追加すると read_line_address = &read_line; は両辺の型があっていない. それと, fclose(fp); if(fp == NULL) { printf("file close error\n"); exit(EXIT_FAILURE); } の if は何も役に立たない (ここに来たとき fp の値が NULL であることはあり得ないので).

すると、全ての回答が全文表示されます。
  • tsunji
  • ベストアンサー率20% (196/958)
回答No.2

print文で1文字ずつ、配列の内容(文字と16進値)とカウンタを表示してみれば?

すると、全ての回答が全文表示されます。
回答No.1

> while(*read_line_address != EOF) 文字列の末尾にあるのはなんですか? EOFですか

すると、全ての回答が全文表示されます。

関連するQ&A