行、空白、タブの数を数えるというこの問題を解決しようとしました。
{ } の使い方がわからないため、私の解決策は正しくありませんでした。
main ()
{
int newline;
int tab;
int blank;
int c;
newline = 0;
tab = 0;
blank = 0;
while ((c = getchar()) != EOF)
if (c == '\n')
++newline;
if (c == '\t')
++tab;
if (c == 32)
++blank;
printf("lines: %d tabs: %d blanks: %d\n", newline, tab, blank);
}
私のコードでは、新しい行だけがカウントされていました。タブとスペースはカウントされませんでした。答えは、if ステートメント セクションの周りに { } を追加することです。しかし、Googleで解決策を検索したので、これしか知りません。
おそらく私だけかもしれませんが、K&R はいつ { } を使用すべきかについて詳しく説明していません。
上記のコードに { } を追加する方法を誰かが説明できますか? コードを読むと、{} がなくても問題ないようです。それは私がその使い方を本当に理解していないことを意味します。上記のコードでタブとスペースがカウントされないのはなぜですか?
あなたが推薦できるCに関する別の本はありますか? プログラミング経験はありません。