前言
当我们使用C语言解决有关计算问题时,一般都需要用scanf函数输入数据然后再进行计算。
但每次计算机算出答案并输出屏幕后这段代码就结束了,如何才能让计算机算出结果后能够继续输入数据再一次计算而不结束运行。
实现
刚开始想到多组输入,第一反应就是循环,但是怎么写呢,写了个"标准"的for循环发现只能循环有限次。
int i;
char ch;
for (i = 0;i < 10;i++)
{
scanf("%c",&ch)
}
方法一
经过查阅,发现有居然这么一句话,可以让他一直循环除非遇到什么情况才停止下来:
char ch;
while((scanf("%d",&ch)) != EOF)
这句话的意思是scanf开始读取字符,直到读取到结束符EOF(end of file),退出循环。
那EOF是什么,其实就是文件结束标志,在C语言中定义(#define EOF -1)EOF的值为-1;
而ascii表范围是0 ~ 127,也就是说只要不输入ctrl z条件为假循环就不会停止。