这个问题来自K&R p.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;
}
Run Code Online (Sandbox Code Playgroud)
该计划不起作用.无论用户文本包含多少空格,制表符和换行符,它总是给出答案0.有谁能看到这个问题?还有一件奇怪的事情:我必须按两次Ctrl-d才能注册.我不知道为什么.谢谢!
Jam*_*lis 18
if(character == (' ' || '\n' || '\t'))
Run Code Online (Sandbox Code Playgroud)
测试是否character等于结果(' ' || '\n' || '\t')(结果为1,表示结果||为真).您需要针对三个可能值中的每一个单独测试它,例如,
if(character == ' ' || character == '\n' || character == '\t')
Run Code Online (Sandbox Code Playgroud)