C语言中的EOF和回车不一样
2015-07-01 15:27
435 查看
经常我们碰到这样一个C语言问题,例如:
输入一个组整数,按照从小到大排序后输出结果
输入: 1 7 9 2 4
输出: 1 2 4 7 9
这里要用C语言读入一段数的话,如果用
因为scanf在使用%d作为格式化输入的时候,并不能读入回车。而且回车也不是EOF,EOF在Unix中一般是Ctrl+C,在Windows中为Ctrl+Z。
但是使用下面的方式是可以的,在这个小地方卡了2个来小时,所以不要随便看别人的代码,上来就加EOF。
输入一个组整数,按照从小到大排序后输出结果
输入: 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++ 模板详解
- 《c++ primer》第五版 第十二章 动态内存
- 提高对C++的认识
- c++(重载、覆盖、隐藏)
- C语言--基础002--for循环
- C++字符串操作集合
- 逆波兰法求解数学表达示(C++)
- C/C++ 通用 Makefile
- C++11 常用语法
- c++调用python
- 【c语言】不使用+-*/计算两个数的和
- LeetCode-Best Time to Buy and Sell Stock II-解题报告
- 关于C++指针查错
- c#调用c++ dll. unable to find an entry point named function in dll
- 黑马程序员——C语言基础学习(三)---进制和函数的总结学习
- LeetCode-Best Time to Buy and Sell Stock-解题报告
- 黑马程序员——C语言基础学习(二)---分支结构和循环结构
- chapter15test1
- C语言中运算符的优先级排序
- C语言 两个分数的四则运算,用函数调用实现