gpt4 book ai didi

c - 如何在不等待用户输入的情况下从 stdin 获取字符?

转载 作者:太空狗 更新时间:2023-10-29 15:33:35 25 4
gpt4 key购买 nike

<分区>

我正在编写一个 C 程序,使用 ncurses 在终端上打印一些东西。当用户按下's'时它应该停止打印并在按下's'时再次继续。如何在不等待用户按下键的情况下从输入中读取键?

我尝试了 getch()getchar() 但它们会等到按下一个键...

编辑

这是我的代码:

int main(void)
{
initscr(); /* Start curses mode */
refresh(); /* Print it on to the real screen */
int i = 0, j = 0;
int state = 0;
while (1)
{
cbreak();
int c = getch(); /* Wait for user input */
switch (c)
{
case 'q':
endwin();
return 0;
case 'c':
state = 1;
break;
case 's':
state = 0;
break;
default:
state = 1;
break;
}
if(state)
{
move(i, j);
i++;
j++;
printf("a");
refresh();
}
}
nocbreak();
return 0;
}

编辑 2这很好用。我得到了 100 分:)

#include <stdio.h>
#include <stdlib.h>
#include <curses.h>

int main(void)
{
initscr();
noecho();
cbreak(); // don't interrupt for user input
timeout(500); // wait 500ms for key press
int c = 0; // command: [c|q|s]
int s = 1; // state: 1= print, 0= don't print ;-)
int i = 0, j = 0;
while (c != 'q')
{
int c = getch();
switch (c)
{
case 'q':
endwin();
return 0;
case 'c':
s = 1;
break;
case 's':
s = 0;
break;
default:
break;
}
if (s)
{
move(i, j);
printw("a");
i++;
j++;
}
}
endwin();
nocbreak();
return 0;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com