我写了一个程序,应该计算大小写字母和其他符号,但是除了按Enter键,然后按^C(EOF)的时候,什么都算。我不知道如何跳过它,希望有人能帮我一下<3。
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch;
int uppers = 0, lowers = 0, others = 0;
while((ch = getchar()) != EOF)
{
if(islower(ch))
lowers++;
else if(isupper(ch))
uppers++;
else
others++;
}
printf("\n\nUpper letters - %d Lower letters - %d Others- %d", uppers, lowers, others);
return 0;
}
CherryDt已经提供了一个适当的答案。
但只是想补充一下。EOF不是一个字符 反倒 条件. 它可能依赖于操作系统。你不能依赖它在每个环境中以同样的方式工作。我的建议是使用 任意字 本身就是一个终止循环的条件,而不是一个依赖于环境的条件。
注 : 用钥匙结束程序的解决方案对我来说是可行的。窗口 只有当我加入 fflush(stdin);
之后 getchar()
. 也许吧 getchar()
接受您的输入,并留下换行符。\n
的输入流中,当我试图使用这种方法终止时,就会产生问题。按键+D 或 按键+Z 或 F6.
但一旦你包括 fflush(stdin)
这将解决这个问题,现在,当我使用的是 F6 在Windows上。如果这对你不起作用,你也可以用上面提到的键试试。
希望这能帮助一些Windows用户,如果上面的答案对他们不起作用。