while(cin>>a)与while(scanf(“%d“,&a)==EOF)

    科技2022-07-10  112

    文章目录

    前言一、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检查缓冲区是否有可读取数据

    总结

    Processed: 0.020, SQL: 8