zoukankan      html  css  js  c++  java
  • 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试试
  • 相关阅读:
    1.5寻找倒数第k个元素
    MySQL基础之分组函数
    MySQL基础之单行函数
    MySQL基础查询(一)
    gem install redis Fetching: redis-4.1.3.gem (100%) ERROR: Error installing redis: redis requires Ruby version >= 2.3.0.
    SQL语句
    使用kill无法杀死mysql进程
    Ansible学习笔记
    rsync报错:rsync: chgrp ".hejian.txt.D1juHb" (in backup) failed: Operation not permitted (1)
    Linux磁盘管理
  • 原文地址:https://www.cnblogs.com/ghostTao/p/3849465.html
Copyright © 2011-2022 走看看