while持续输入的几种常用使用方法

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

如果n被成功读入,则返回值为1,

如果n未被成功读入,则返回值为0,

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

那么什么时候返回EOF呢,简单来说在Windows下按住Ctrl+Z,在Mac下按住Ctrl+D,作为结束流的信号。

当然你有一些特殊的要求,比如我想让n=0时结束。

while(scanf("%d",&n)!=EOF)
{
    if(n==0)
    break;
}

当然我将全部方法总结如下

例如:

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

while(~scanf("%d",&n))
-------------------------------------以上可以按Ctrl+Z或Ctrl+D来结束,按0时会继续输入
while(scanf("%d",&n)&&n!=0)

while(scanf("%d",&n)&&n)    //上一步简化后,相当于while(n)<--这个n是你输入的值

while(scanf("%d",&n),n)
-------------------------------------以上是在输入0时结束,按Ctrl+Z或Ctrl+D无效
while(scanf("%d",&n)==1&&n)
-------------------------------------既可以按0时结束,也可以以按住Ctrl+Z或Ctrl+D结束

以上都是输入一种变量时。

当然有题目也需要两种变量,同样的道理。

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

while (~scanf("%d%d",&m,&n))
-----------------------------------------------------以上可以按Ctrl+Z或Ctrl+D来结束,按0 0时会继续输入
while(scanf("%d%d",&m,&n)&&m&&n)

while(scanf("%d%d",&m,&n),m,n)

while(scanf("%d%d",&m,&n)==2,m,n)
--------------------------------------------以上是在输入0 0时结束,按Ctrl+Z或Ctrl+D无效
while(scanf("%d %d",&m,&n)==2&&m&&n)
---------------------------------------------既可以按0 0时结束,也可以以按住Ctrl+Z或Ctrl+D结束

猜你喜欢

转载自www.cnblogs.com/icesunbo/p/11490550.html