C语言中的EOF和回车不一样
经常我们碰到这样一个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和回车不一样的更多相关文章
- C语言中file文件指针概念及其操作 (转载)
		
文件 文件的基本概念 所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名.实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件. ...
 - c语言中的scanf在java中应该怎么表达,Scanner类。
		
1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...
 - C语言中gets(), scanf()区别
		
C语言中gets(), scanf()区别 相同点: gets()和 scanf() 1.函数都可用于输入字符串 2.都在stdio.h头文件中定义. 3.字符串接受字符结束后自动加'\0' 不同点: ...
 - C语言中<CR>是什么意思
		
在文本处理中, CR, LF, CR/LF是不同操作系统上使用的换行符.Dos和windows采用回车+换行CR/LF表示下一行, 而UNIX/Linux采用换行符LF表示下一行,苹果机(MAC OS ...
 - C语言中,头文件和源文件的关系(转)
		
简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句, ...
 - C 语言中 setjmp 和 longjmp
		
在 C 语言中,我们不能使用 goto 语句来跳转到另一个函数中的某个 label 处:但提供了两个函数——setjmp 和 longjmp来完成这种类型的分支跳转.后面我们会看到这两个函数在处理异常 ...
 - C语言中do...while(0)的妙用(转载)
		
转载来自:C语言中do...while(0)的妙用,感谢分享. 在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语 ...
 - C语言中,定义的含义?声明的含义?它们之间的区别是什么?
		
在C语言中,对于定义和声明,也许我们非常的熟悉,但不一定真正的了解! 定义的含义:所谓定义,就是创建(编译器)一个对象,为这个对象分配一块内存空间并取名,也就是我们平常所说的变量名或对象名,一旦这个名 ...
 - C++中函数的默认参数和C语言中volatile的学习
		
1.函数默认参数 1 int func(int a,int b=10) 2 { 3 return a*b; 4 } 5 6 int main() 7 { 8 int c=func(2); 9 cout ...
 
随机推荐
- bzoj3262: 陌上花开(树套树)
			
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
 - bzoj3514Codechef MARCH14 GERALD07加强版
			
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
 - C# winform窗体设计-数据库连接
			
本篇文章内容主要是小编上课所学的总结 最近小编在学习C#中的数据库管理方面,主要学习到数据库的增删改查,查询学生平均分,最低分,最高分等操作 [本篇文章中小编主要讲解数据库的连接] 在C#中使用数据库 ...
 - 洛谷P3398 仓鼠找sugar
			
题目描述 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室(c) ...
 - Andirod——网络连接(HttpURLConnection)
			
Android中使用HTTP协议访问网络的方法主要分为两种: 使用HttpURLConnection 使用HttpClient 本文主要内容是HttpURLConnection的使用. HttpURL ...
 - TCP/IP详解 笔记十三
			
TCP协议(一) 概述 特点 1, 面向连接可靠的字节流服务 2, 只有两方通信,不能用于广播或多播 3, 应用数据被TCP分隔为最合适发送的数据段,传给IP协议栈 4, 发送端并启动定时器, ...
 - 重新认识unicode和utf8编码
			
重新认识unicode和utf8编码 直到今天,准确的说是刚才,我才知道UTF-8编码和Unicode编码是不一样的,是有区别的囧 他们之间是有一定的联系的,看看他们的区别: UTF-8的长度是不一定 ...
 - 三角形问题的解决复杂度O(n^3)和O(nlogn)的比较
			
问题描述: n条棍子组成一个三角形,使得三角形周少最大. 方法一: 暴力解则算法复杂度为O(n^3) #include<stdio.h> const int MAX_N=105 int m ...
 - Unable to execute dex: java.nio.BufferOverflowException.解决办法
			
异常提示: [2014-01-16 09:27:35 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Ch ...
 - hdu 2010 - 水仙花数
			
题意: 数学上有个水仙花数,他是这样定义的:"水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3.现在要求输出所有在m和n范围内的水仙花 ...