Я безуспешно пытался заставить getch
работать в другой программе. Итак, я сделал самую простую программу, которую только мог, используя getch
так, как я хочу, чтобы она работала в основной программе.
Я исследовал потребность в noecho
, cbreak
, initscr
и nodelay
, я также пытался использовать newscr()
, но безуспешно.
Проблема, с которой я сталкиваюсь, заключается в том, что символы не печатаются на экране, пока я не нажму «ввод», когда они должны быть put
на экране в каждом цикле. Почему это происходит? Также курсор не возвращается в левую часть экрана на новой строке. например.
abc
def
ghi
Я искал ответ, но снова в тупике...
#include <stdio.h>
#include <ncurses.h>
int main()
{
initscr();cbreak(); noecho();nodelay(stdscr,0);
char c ;
while((c=getch())!=EOF){
putchar(c);}
return 0;
}
grep '.'
. Я могу заверить вас, что он не использует ncurses. - person Kaz   schedule 21.04.2012sed
,awk
,grep
, сколько угодно. Эхо не влияет на работу; это просто локальная обратная связь в драйвере TTY операционной системы, которая позволяет вам видеть, что, черт возьми, вы печатаете. - person Kaz   schedule 21.04.2012getch()
вint
, а не вchar
. stackoverflow .com/questions/8464030/ - person HostileFork says dont trust SE   schedule 21.04.2012