我在名为printftest.c
的文件中有这段简单的代码。
#include <stdio.h>
int main(){
int c,i;
i = 0;
while ((c = getchar()) != EOF)
++i;
printf("c = %d\n",c);
printf("i = %d\n",i);
}
编译和执行如下(在Windows上):
gcc printftest.c && a.exe
终端会话如下:
gcc printftest.c && a.exe
c = -1
^C
现在,当我在终端中输入ctrl-c(键盘中断)作为输入时,仅执行第一个printf语句。为什么会这样?我希望只打印两个语句或不打印。谁能解释执行的确切停止位置以及原因?