我正在阅读K& R的书,其中一个练习是计算输入中的空白,制表符和新行。但是每当我运行以下代码时,它只会正确计算最后一个新行之上的所有内容的空格,制表符和新行。如果没有新行,它就不计算任何数量。
hey how
返回
0 0 0
和
hey how
hey how
hey how
返回
2 0 2
如果我使用tabbed而不是使用空格,那么它将是0 2 2。 空格和制表符似乎依赖于新行,我不知道为什么。那么我该如何使它工作,所以最后不需要换行? 这是我的代码。
#include <stdio.h>
/* counts blanks, tabs, and new lines */
main()
{
int c, blanks, tabs, nl;
blanks = 0;
tabs = 0;
nl = 0;
while((c = getchar()) != EOF)
{
if(c == ' ')
++blanks;
if(c == '\t')
++tabs;
if(c == '\n')
++nl;
}
printf("\n%d\t%d\t%d\n" , blanks , tabs , nl);
}
答案 0 :(得分:3)
使用其他键盘快捷键。你不想杀死程序,你想用适当的组合键模拟文件结尾: