我现在有一个非常混乱的问题。我为自己编写了一个测试程序,但是有时在输入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