文章目录
前言一、EOF二、流结束标志三、"cin"和"scanf"总结
前言
1 查找序列元素(数组) 作者: Turbo时间限制: 1S章节: DS:数组和链表
同样的形式,使用while(cin>>a)可以AC,但是使用while(scanf("%d",%a))就是TLE,使用while(scanf("%d",%a)==EOF)才能AC.
一、EOF
EOF,是End Of File的缩写,存在于文本文件的结尾,表示文件结束。EOF的值为-1。 在终端输入数据时,不会产生EOF。应用程序将一份已知的保留字符或序列解释为文件的结束,也就是EOF是ASCII码中的替换字符(ctrl+z) EOF用作文件结束符,也常常用来判断函数是否成功执行,函数的失败时返还EOF.
二、流结束标志
按流结束标志检查方式分类
阻塞式检查:ctrl+z 只有按下enter后,才会检查是否输入ctrl+z非阻塞式检查:ctrl+d 输入ctrl+d后,立即响应。 但是在输入ctrl+d前,还输入了数据,此时ctrl+d相当于ente,将数据送入输入缓冲区,供读取使用,不在作为流结束的信号。
三、“cin"和"scanf”
scanf的返回值是被输入函数scanf成功赋值的变量的个数 ,返回值>=0. 在循环条件中,没有scanf(……)!=EOF的判定,循环while将一直进行。 scanf(……)!=EOF可以替换成scanf(……)==1,或while(~scanf())cin是输入流对象,>>是重载的运算符,cin>>的返回值就是cin对象 cin的使用:输入数据并按下enter后,数据送入输入缓冲区,cin检查缓冲区是否有可读取数据
总结