我试图解决这个问题,即计算行数、空格数和制表符的数量。
我的解决方案不正确,因为我不知道如何使用 { }。
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 语句部分周围添加 { }。但我只知道这一点,因为我在谷歌上搜索了解决方案。
也许只有我一个人,但 K&R 并没有真正解释什么时候应该使用 { }。
有人可以解释我如何知道将 { } 添加到我的上述代码中吗? 当我阅读代码时,没有 {} 似乎很好。这意味着我真的不明白它的用法。为什么上面的代码中不计算制表符和空格?
您可以推荐另一本关于 C 的书吗? 我没有编程经验。