#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)时它不会终止。它打印最后一个值并继续直到我手动关闭输出控制台。这里有什么问题?
答案 0 :(得分:0)
如果要杀死程序,则必须按Control + C而不是Control + Z.
这里,程序不停地迭代,因为它找不到!= EOF条件。因为a是内存位置的地址,并且这些地址之间的差异永远不等于EOF字符。因此它迭代直到超时。