消息关闭
    暂无新消息!

C语言初学者 求助帖

问题作者 : Croxford2017-07-16发布
麻烦大家帮忙看看,下面的代码用于把标准输入复制到标准输出,并计算字符的检验和,在DevC++上运行,
printf("Checkchar=%d\n",Checkchar);  这句没有任何对应的输出结果,是哪里出了问题呢?

#include <stdio.h>
#include <stdlib.h>
int Checkchar;
char ch; 
int main()
{
while((ch=getchar())!=EOF)
   {   Checkchar+=ch;
     putchar(ch);  }

printf("Checkchar=%d\n",Checkchar);
return 0;
}




6个回答

︿ 2
谢谢大家的回答,4楼很给力,差不多明白啦,小白顺便再问一下,键盘上的enter就是从里面的\n对吧
︿ 1
回复1楼:getchar函数从标准输入读取一个字符并返回它的值;如果输入中不存在任何字符,函数就会返回常量EOF(在stdio.h中定义),用于提示文件的结尾。这个是摘自《C和指针》上的,我不是很懂,请问要怎么输入EOF呢?是因为这个导致printf("Checkchar=%d\n",Checkchar);  没办法输出吗?
︿ 1
不是初始值的问题。
仅仅按下回车,并没有退出循环,仍然在等待输入。
解决办法是按下ctrl + z,这样才发送EOF,从而循环终止,显示结果。
看一下图就更清楚了: