你这么讲 是不是 当我输入的数太多的时候 他们沾满了所有的文件 文件包含不了了 就强制终止
追答不对而是当遇到输入流包含了非数字信息的时候就会终止
意思是那个数除了-1都是可以的 像3 22 100
我刚试了一下 直接写 while( scanf("%d%d",&a,&b))也是对的啊就不用要==2
while循环是这样判断是否继否执行循环体的,只要表达式的值非零,它都会一直执行,不管你是-1 , 2, 3, -11661 ………………只要不是0它就继续下去,所以,如果按楼主所说,那些数确实是可以继续循环的, 像前面几位回答的,EOF是一个标志,是判断是否读取到文件尾的一个标志,我们可以认为EOF = -1 ,如果scanf()函数返回一个-1,说明读取到了文件尾,此时要结束循环,那么-1 != EOF 这个条件为假,所以自然就跳出了循环。
追问哦 明白了很多 再弱弱的问下 什么情况下scanf可以返回-1呢
本回答被提问者采纳我刚试了一下 直接写 while( scanf("%d%d",&a,&b))也是对的啊 不理解不理解
追答嗯,是,那是因为还没到end of file,而while( scanf("%d%d",&a,&b))就是scanf("%d%d",&a,&b)一直成立啊。
终于等到了 这个我在网上也见到了 就是不明白那个EOF是啥东西 我也没学呢
看看还有没有别的方法了
EOF指的是end of file
追问我刚试了一下 直接写 while( scanf("%d%d",&a,&b))也是对的啊 不理解不理解
追答C++里可以不用eof