首页 > 编程语言 > 详细

C语言中的EOF和回车不一样

时间:2015-07-01 17:22:41      阅读:433      评论:0      收藏:0      [点我收藏+]

经常我们碰到这样一个C语言问题,例如:

输入一个组整数,按照从小到大排序后输出结果

输入:  1 7 9 2 4

输出:  1 2 4 7 9

这里要用C语言读入一段数的话,如果用

int array[100];
while(scanf("%d", &src) != EOF){
	i++;
	array[i] = src;
}
或者
while(scanf("%d", &src) != 0){
	i++;
	array[i] = src;
}
都是不可以的!

 因为scanf在使用%d作为格式化输入的时候,并不能读入回车。而且回车也不是EOF,EOF在Unix中一般是Ctrl+C,在Windows中为Ctrl+Z。

但是使用下面的方式是可以的,在这个小地方卡了2个来小时,所以不要随便看别人的代码,上来就加EOF。

while(1){
	scanf("%d", &src);
	i++;
	array[i] = src;
	
	if(getchar() == ‘\n‘){
		break;
	}
}

 

C语言中的EOF和回车不一样

原文:http://www.cnblogs.com/fangying7/p/4613360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!