Как я могу использовать ввод, не дожидаясь, пока пользователь что-то даст (используя C) ?
- Привет!!
Я использую язык Си и хочу использовать ввод ,не дожидаясь ввода пользователя или нажатия клавиши enter.(в python я могу это сделать)-я думаю, здесь тоже.
Например,я хочу напечатать "hello\n" в консоли внутри цикла while ,и когда пользователь дает ввод, я хочу напечатать данный ввод, не останавливая печать сообщения "hello".
Что я уже пробовал:
#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 char c; int a = 1; while(a == 1) { c = getch(); printf("hello\n"); printf("%c key pressed...\n",c); } endwin(); nocbreak(); }
но я получил эту ошибку:
/tmp/ccNmVWH7.o: в функции `main':
input_no_wait.c:(.text+0x9): неопределенная ссылка на `initscr'
input_no_wait.c:(.text+0xe): неопределенная ссылка на `noecho'
input_no_wait.c:(.text+0x13): неопределенная ссылка на `cbreak'
input_no_wait.c:(.text+0x1a): неопределенная ссылка на `stdscr'
input_no_wait.c:(.text+0x27): неопределенная ссылка на `wtimeout'
input_no_wait.c:(.text+0x2e): неопределенная ссылка на `stdscr'
input_no_wait.c:(.text+0x36): неопределенная ссылка на `wgetch'
input_no_wait.c:(.text+0x54): неопределенная ссылка на `endwin'
input_no_wait.c:(.text+0x59): неопределенная ссылка на `nocbreak'
collect2: ошибка: ld вернул 1 статус выхода
--------------------------------------------------------------
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Мне нужна твоя помощь.
Заранее спасибо!!!