while(scanf(“%d“,&n)‘’=EOF) 用法
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了while(scanf(“%d“,&n)‘’=EOF) 用法相关的知识,希望对你有一定的参考价值。
while(scanf("%d",&n)‘’=EOF) 用法
scanf输入在控制台按ctrl+z
停止输入自动结束语句
#include<stdio.h>
int main()
int a;
while(scanf("%d",a)!= EOF)
/*
核心代码
在控制台按ctrl+z停止输入
*/
return 0;
解释:
EOF
在scanf
函数中被定义为-1, 对应ctrl+z
。
也就是无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF:
需要注意的是:
- 用scanf接受字符串,遇到空格会自动结束;
所以要读入含空格字符串,正确用法如下面:
while(gets(a)!=NULL)..
因为:
EOF在scanf中被定义为-1, 对应ctrl+z。
而gets返回值:读入成功,返回与参数buffer相同的指针;
读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。
scanf输入遇到负数自动结束语句
#include <stdio.h>
int main()
int num;
while (1)
scanf("%d", &num);
if (num < 0)
printf("输入值为负数,跳出程序!\\n");
break; //跳出
else
printf("输入值不为负数,继续输入!\\n");
return 0;
以上是关于while(scanf(“%d“,&n)‘’=EOF) 用法的主要内容,如果未能解决你的问题,请参考以下文章
while(scanf(“%d“,&n)‘’=EOF) 用法
多组数据输入写法:while(scanf(“%d“,&n) != EOF)和while(~scanf(“%d“,&n) ),以及while((ch=getchar()) != EOF)