我现在遇到一个非常令人困惑的问题。我为自己编写了一个测试程序,但有时在我输入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((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退出程序,但我不知道它会如何工作。
答案 0 :(得分:3)
Ctrl + C 是break命令,它将向您的应用程序发送中断信号。默认处理程序将导致此操作退出。
Ctrl + D 是您要查找的EOF命令。
答案 1 :(得分:3)
要在Windows上运行,要输入EOF,请按 Ctrl + Z ,然后按ENTER。在UNIX系统中,它是Ctrl + D,在Windows Ctrl + Z中。
答案 2 :(得分:1)
当程序运行时,如果按Ctrl-c,将发送信号以中止程序并中止程序。但是,如果要使用Ctrl-c作为输入而不是中止程序,请编写一个信号处理程序,当您按Ctrl-c并执行所需的操作时,该处理程序将捕获信号。