今天,我编写了一段简单的代码,使用getchar()
来计算您输入的字符数。但是当我在Cygwin上编译它时,它不起作用。它总是打印0,但我从不输入任何东西,或者我无法输入它打印的任何字符。
但是,如果我使用VC ++ 6.0编译它,它可以工作。
#include<stdio.h>
int main(void)
{
long nc;
nc = 0;
while(getchar() != EOF)
++nc;
printf("The total of characters you inputed is %ld.\n", nc);
return 0;
}
答案 0 :(得分:0)
This email thread谈到一个听起来和你很相似的错误,但我看不出它有任何跟进。
我很想知道你尝试时发生了什么
while(getc(stdin) != EOF)
如果这不起作用,请尝试
while(fgetc(stdin) != EOF)
所有这些都应该,但this页面表明这些功能之间可能存在实施差异。
你可以尝试的另一件事是打印你得到的ASCII值:
printf("%d\n",(int)getchar());
另外,尝试从文件输出管道输出,而不是在控制台中输入。创建一个文件input.txt
,在其中放入一些字符,然后执行
cat input.txt | ./program
编辑:你写的是跑猫和管道它的工作原理。我只想更新你的Cygwin版本。你遇到过一个bug。获取最新版本的Cygwin和编译器,你应该很高兴。另一种选择是使用scanf。