• while(scanf("%d",&n)!=EOF)


    scanf的返回值由后面的参数决定

    scanf("%d%d", &a, &b);

    如果a和b都被成功读入,那么scanf的返回值就是2

    如果只有a被成功读入,返回值为1

    如果a和b都未被成功读入,返回值为0

    如果遇到错误或遇到end of file,返回值为EOF。

    且返回值为int型.

    验证:

            sign=scanf("%d %d",&a,&b);
            printf("%d %d ",a,b);
            printf("%d ",sign);


     

    但是输入“a X”的时候 输出的sign为0

    什么时候输出EOF? 在stdio.h中宏定义为-1

    按照说明,scanf函数只有在第一个参数为NULL(空指针)的情况下,才可能返回EOF,否则,返回成功格式化并赋值的参数个数(>=0)。

    End Of File,在电脑的术语缩写通常为 EOF,在作业系统决定资料源无更多的资料可读取。

    int c; while ((c = getchar()) != EOF) { 
    putchar(c); } 但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。 Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓存区,所以这时必须按两次Ctrl-D);Windows中,Ctrl-Z表示EOF。(顺便提一句,Linux中按下Ctrl-Z,表示将该进程中断,在后台挂起,用fg命令可以重新切回到前台;按下Ctrl-C表示终止该进程。) 那么,如果真的想输入Ctrl-D怎么办?这时必须先按下Ctrl-V,然后就可以输入Ctrl-D,系统就不会认为这是EOF信号。Ctrl-V表示按"字面含义"解读下一个输入,要是想按"字面含义"输入Ctrl-V,连续输入两次就行了
    EOF 意思就是 end of file!!!! 你 按按CTRL+D试试
  • 相关阅读:
    Cortex-M3 跳转到指定bin执行
    Keil生成汇编文件、bin文件
    鲁迅
    Cortex-M3的一些概念
    linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结【转】
    c/c++ linux下 移动、删除文件
    c/c++ linux下 获取时间戳
    c++ 生成随机字符串【转】
    c++ <fstream> 读写文件总结
    c++11 std::mutex
  • 原文地址:https://www.cnblogs.com/ghostTao/p/3849465.html
Copyright © 2020-2023  润新知