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;

解释:
EOFscanf函数中被定义为-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)

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

EOF的意义及用法(while(scanf(“%d“,&n) != EOF))

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

C语言while(scanf("%d",&num)==1);语句的一个问题