所以程序能够工作,但是它的工作方式如下:
input: 3 blanks
output:
newlines:0
tabs:0
blanks:1
newlines:0
tabs:0
blanks:2
newlines:0
tabs:0
blanks:3
newlines:1
tabs:0
blanks:3
以下是该程序:
#include <stdio.h>
main() {
int c, nl, t, b;
nl = 0;
t = 0;
b = 0;
while ((c = getchar()) != EOF) {
if (c == '\n')
++nl;
if (c == '\t')
++t;
if (c == ' ')
++b;
printf("newlines:%d\ntabs:%d\nblanks%d\n", nl, t, b);
}
}
我的问题是,是否可以仅显示最后一个结果,其中包含
blanks:3
,以避免重复。(newlines:1
tabs:0
blanks:3)?
printf
移到循环外面。 - Spikatrixmain()
是一个函数,而不是循环。while
才是循环。此外,我建议使用标准的int main(void)
签名来定义main
函数。 - SpikatrixCTRL + Z
,然后按回车键;如果你在Linux上,请尝试按下CTRL + D
,以发送“EOF”条件,以便循环结束。根据最新的C标准,“int main(void)”是“main”函数的正确签名之一。你正在阅读的书很旧,这就是为什么它只使用了“main()”。 - Spikatrix