while(scanf("%d",&x) == 1)//ctrl+z到底是怎么作用,终止循环?

#include<stdio.h>
#include<stdlib.h>
#define MAXN 100+10
int a[MAXN];
int main(){//输入一个整数,按ctrl+z ,输入的整数输出呀!
int i,x,n=0;
while(scanf("%d",&x) == 1)//ctrl+z到底是怎么作用,终止循环?
a[n++]=x;
for(i=n-1;i>=1;i--)
printf("%d",a[i]);
printf("%d",a[0]);
system("pause");
return 0;
}

scanf("%d",&x)
其返回值为正确输入的变量个数. 正确执行时会成功给x赋值,即赋值了一个变量. 返回1.
当出错的时候,比如输入了字母,那么就会返回0.
当遇到文件结束标记EOF的时候,会返回-1.
所以,这个代码,不一定要ctrl +z 输入任意非数字字符就可以终止循环了.
ctrl +Z 就是windows上输入EOF标记的方法,会引起scanf返回-1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-27
ctrl+z相当于文件的EOF (end of file),当scanf遇到它时即停止读入,返回值为0。追问

ctrl+z 不是挂起程序吗?

追答

不是

追问

挂起程序 是哪个ctrl+?//什么?

追答

你所谓的挂起是指挂起进程?那就是ctrl+z。但和这个程序无关。
在输入的时候ctrl+z就相当于EOF。

追问

本回答被提问者采纳
第2个回答  2012-01-27
while(scanf("%d",&x) != -1)


while(scanf("%d",&x) !=EOF)


都是用ctrl+z 终止循环

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网