【发布时间】:2013-03-09 12:49:23
【问题描述】:
我需要用 C 语言编写一个程序,它会做这样的事情: 例如,当我按下“a”时,终端将像这样在无休止的循环中写入键入的字符:aaaaaaaaaaaaaaaa...直到按下另一个键,例如“b”。最终输出应该如下所示:aaaaaaaaabbbbbbq(q 应该终止程序)。 我的代码在这里:
int main(int argc, char** argv) {
int c;
static struct termios staryTermios, novyTermios;
tcgetattr(STDIN_FILENO, &staryTermios);
novyTermios = staryTermios;
novyTermios.c_lflag &= ~(ICANON);
tcsetattr(STDIN_FILENO, TCSANOW, &novyTermios);
while ((c = getchar()) != 'q') {
putchar(c);
}
tcsetattr( STDIN_FILENO, TCSANOW, &staryTermios);
return 0;
}
这个版本只写一次输入的字符,然后等待另一个按键
【问题讨论】: