- ベストアンサー
C言語のコード内での行数カウントの仕組みについて
- C言語のコード内で行数をカウントする方法を知りたいです。
- コード内の(ch == '\n')の部分が行数をカウントするための条件文です。
- コードを実行すると、改行文字が入力された場合に行数がカウントされます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
「a」を入力したと言っても、それがキーボードから入力したということだったら「a」に続けてEnterキーを押してませんか? もしそうならば、whileの1度目のループ処理で ch = getchar() このchには'a'(つまり 0x61)が入り、2度目のループ処理で ch = getchar() このchに'\n'が入り、countは1増えますよね。 入力が本当に「a」のみだったら「行数は1です。」 入力が「a」とEnterで終わっていたら「行数は2です。」 > (ch=='\n')というのはchと改行が同じなら行数を1増やすと言う事になると思う その通りで間違ってませんよ。
その他の回答 (3)
- nda23
- ベストアンサー率54% (777/1415)
\n はエスケープ文字で、改行を表わします。 復帰や改行、タブ等の制御コードは文字の 本体(ボディ)が無いので、'A'のように表記 できません。そこで、このような表現方法を 使って表わすことになっています。 ch = getchar() でキーボードからの1文字を 受け取ります。 if ( ch == '\n' ) count++; これは「cnが改行 ならば count++ する」という文ですね。 因みに改行のコードは0x0Aなので、'\n'は '\x0A'と書いても同じ結果になります。
お礼
わかりました。ありがとうございますm(_ _ )m
- OKWavex
- ベストアンサー率22% (1222/5383)
>chと改行が同じなら行数を1増やすと言う事になると思うのですが 改行をカウントすれば行数のカウントになることがわかりませんか?
お礼
わかりました。ありがとうございますm(_ _ )m
- notnot
- ベストアンサー率47% (4900/10358)
>aを入力したとしてchにaが入っても、a=='\n'にはならないと思うのですが、 はい。ならないです。 >実行して見ると行数がカウントされます。 "a" は行数と関係ないです。 >chと改行が同じなら行数を1増やすと言う事になると思うのですがよくわかりません。 行数を求めるためには、改行の数を数えます。 それがわからないと言われると、困ってしまいます。
お礼
わかりました。ありがとうございますm(_ _ )m
お礼
わかりました。ありがとうございますm(_ _ )m