我現在有一個非常混亂的問題。我爲自己編寫了一個測試程序,但是有時在輸入Crtl + C之後,我認爲它是EOF,程序提前關閉,但沒有通過while循環下面的一些命令,我希望它取消。爲什麼我的C程序提前關閉?
#include <stdio.h>
#include <string.h>
int main()
{
char message[140];
char* p = message;
int count;
int i = 0;
int charGT;
while((charGT=getchar()) != EOF)
{
message[i] = charGT;
i++;
printf("%d" , i);
}
printf("next");
count = strlen(p);
printf("%d", count);
printf("after");
return (0);
}
輸入「asd \ n^C」會導致我的程序提前結束。 「next」或「after」將不會被打印 我的理論是,某種程度上,\ n導致程序退出循環一段時間,然後Crtl + C正在退出程序,但是我沒有知道如何工作。
在* -nix上,'ctrl-C'發送SIGINT到前臺進程。也就是說,它會殺死你的程序。 – 2013-02-11 04:41:51
EOF字符因操作系統而異。你必須小心那個。 Windows,Unix和Linux可能會略有不同。 – TheLazyChap 2013-02-11 04:45:11
哦!我懂了。所以做一個快速的谷歌,看起來像Crtl + Z是我正在尋找。謝謝。 – user2019645 2013-02-11 04:50:40