为什么EOF没有终止程序?

时间:2015-11-27 06:04:43

标签: loops

#include<stdio.h>
int main()
{
    int a,b;
    char i;
   do{
        scanf("%d%d",&a,&b);
        printf("%d\n",b-a);
    }while(a!=EOF);
   return 0;
}

在这个程序中,当我按下ctrl + z(EOF)时它不会终止。它打印最后一个值并继续直到我手动关闭输出控制台。这里有什么问题?

1 个答案:

答案 0 :(得分:0)

如果要杀死程序,则必须按Control + C而不是Control + Z.

这里,程序不停地迭代,因为它找不到!= EOF条件。因为a是内存位置的地址,并且这些地址之间的差异永远不等于EOF字符。因此它迭代直到超时。