这个问题来自K&R的第20页:编写一个程序来计算空格、制表符和换行符。以下是我的尝试:
#include <stdio.h>
int main()
{
int character, whitespace = 0;
printf("Enter some text, and press Ctrl-d when you're done.\n\n");
while((character = getchar() != EOF) {
if(character == (' ' || '\n' || '\t')) {
++whitespace;
}
}
printf("\nYour text contains %d spaces, tabs, and lines.\n", whitespace);
return 0;
}
程序出现问题了。无论用户的文本中有多少个空格、制表符和换行符,它总是给出0作为答案。有人能看出问题所在吗?还有一件奇怪的事情:我必须按两次Ctrl-d才能注册。我不知道为什么。 谢谢!
while
语句缺少右括号;这可能是复制粘贴错误,因为你说程序能够编译和运行。请确保缺失的右括号在getchar()
之后而不是在EOF
之后,否则会导致结果不正确。 - James McNellis