今天,我编写了一段简单的代码,用于 getchar()
计算您输入的字符数.但是当我在Cygwin上编译它时,它不起作用.它总是打印0,但我从不输入任何东西,或者我无法输入它打印的任何字符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;
}
Run Code Online (Sandbox Code Playgroud)
此电子邮件主题讨论了一个听起来很像您的错误,但我看不到有任何后续措施。
我很想知道当你尝试时发生了什么
while(getc(stdin) != EOF)
如果这不起作用,请尝试
while(fgetc(stdin) != EOF)
所有这些都应该可以工作,尽管本页表明这些函数之间可能存在实现差异。
您可以尝试的另一件事是打印您得到的 ASCII 值:
printf("%d\n",(int)getchar());
另外,尝试从文件中输出管道,而不是在控制台中键入它。创建一个文件input.txt
,在其中放入一些字符,然后执行
cat input.txt | ./program
编辑:您编写运行猫并通过管道传输它的工作原理。我想说只需更新您的 Cygwin 版本即可。您遇到了错误。获取最新版本的 Cygwin 和编译器,然后就可以开始了。另一种选择是使用scanf。