我正在使用fgets来读取用户输入。但如果我按下" Ctrl + C",我将在终端上获得^ C字符。如果有办法阻止这种回声,我会徘徊吗?
答案 0 :(得分:1)
如果您缺少的是阻止^ C显示在屏幕上,请使用curses禁用echo:
#include <ncurses.h>
#include <stdlib.h>
void main() {
char buf[90];
initscr();
noecho();
fgets(buf, 80, stdin);
}
答案 1 :(得分:0)
CTRL-C用于中止当前任务并重新获得用户控制权。这是一个特殊的序列,它使操作系统向活动程序发送信号。
CTRL-C信号的默认操作是终止活动程序,无论它是否正在执行fgets()。 覆盖它的一种方法是在你的程序中编写自己的信号处理程序并忽略CTRL-C,我怀疑这对你的目的是否有任何好处。