为什么我的C程序提前关闭?
我现在有一个非常令人困惑的问题。我为自己编写了一个测试程序,但有时在输入Crtl+C(我假设是EOF)后,程序会提前关闭,而不会在我希望取消的While循环下运行更多命令为什么我的C程序提前关闭?,c,C,我现在有一个非常令人困惑的问题。我为自己编写了一个测试程序,但有时在输入Crtl+C(我假设是EOF)后,程序会提前关闭,而不会在我希望取消的While循环下运行更多命令 #include <stdio.h> #include <string.h> int main() { char message[140]; char* p = message; int count; int i = 0; int charGT; while((ch
#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);
}
#包括
#包括
int main()
{
字符消息[140];
char*p=消息;
整数计数;
int i=0;
int charGT;
while((charGT=getchar())!=EOF)
{
消息[i]=charGT;
i++;
printf(“%d”,i);
}
printf(“下一个”);
计数=strlen(p);
printf(“%d”,计数);
printf(“之后”);
返回(0);
}
输入“asd\n^C”将导致我的程序提前结束。“下一步”或“之后”将不打印
我的理论是,不知何故,\n导致程序退出循环一段时间,然后Crtl+C退出程序,但我不知道这将如何工作。Ctrl+C是中断命令,将向应用程序发送中断信号。默认处理程序将导致该进程退出
Ctrl+D是您要查找的EOF命令。要在windows上运行,请按Ctrl+Z输入EOF,然后按enter键。在UNIX系统中,它是Ctrl+D,在Windows中是Ctrl+Z。当程序运行时,如果按Ctrl-c,则会发送一个信号以中止该程序,并中止该程序。但是,如果希望使用Ctrl-c作为输入,但不中止程序,请编写一个信号处理程序,在按下Ctrl-c并执行所需操作时捕获信号 在*nix上,
ctrl-C
向前台进程发送SIGINT。也就是说,它会杀死你的程序。EOF字符会根据你的操作系统而变化。你得小心那个。Windows、Unix和Linux的操作可能略有不同。哦!我懂了。所以做一个快速的谷歌,看起来Crtl+Z就是我要找的。谢谢。我应该提到我在Windows上运行这个吗?到目前为止,Crtl+D似乎什么也不做,只是添加了更多的输入,我只看到Crtl+C做了一些有意义的事情,而Ctrl+C有时实际上会继续执行程序。Hrm。。。还是Ctrl+Z?我很少输入捕捉。Ctrl+Z,后跟回车符。