博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
while(scanf("%d",&n)!=EOF)
阅读量:5074 次
发布时间:2019-06-12

本文共 865 字,大约阅读时间需要 2 分钟。

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\n",a,b);
        printf("%d\n",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试试

转载于:https://www.cnblogs.com/ghostTao/p/3849465.html

你可能感兴趣的文章
在Ubuntu 14.04 64bit中永久添加DNS的方法
查看>>
[2017-09-05]Abp系列——Abp后台作业系统介绍与经验分享
查看>>
Bootstrap基础学习(二)—表单
查看>>
转:InnoDB多版本(MVCC)实现简要分析
查看>>
9 普通索引和唯一索引,应该怎么选择?
查看>>
根据浏览器判断是下载IOS还是其它的手机安装包
查看>>
SQL取数据库名,取表名,取列名
查看>>
Java学习——使用final修饰符
查看>>
java实验五——字符数组、String、StringBuffer的相互转化,StringBuffer的一些方法
查看>>
RMAN 异机恢复
查看>>
【原创】MySql 数据库导入导出(备份)
查看>>
【C#】调用2.0踩过的坑
查看>>
golang 读取一行
查看>>
为没有强名称的程序集添加强名称
查看>>
邮件实现详解(一)------邮件发送的基本过程与概念
查看>>
cacti 与 nagios 一些总结 【六】
查看>>
xilinx中的DCM与PLL
查看>>
AC日记——字符串判等 openjudge 1.7 17
查看>>
ES6 Template String 模板字符串
查看>>
Gradle for Android
查看>>