Chce zeby uzytkownik nie musial wciskac entera po wprowadzonej wartosci na input, pomoglby mi ktos jak mozna to zrobic ?
0
2
Potrzebna ci zewnętrzna biblioteka (w standardzie C/C++ nie ma tego), np curses
0
Tak jak mówi @MarekR22
Jak korzystasz z linucha, to możesz zrobić to tak.
#include <curses.h>
int main(void) {
initscr();
timeout(-1);
int c = getch();
endwin();
printf ("%d %c\n", c, c);
return 0;
}
Lub bez ncurses
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
int getchack( ) {
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}
int main()
{
int c = getchack();
putchar(c);
}
0
To znaczy uzytkownik bedzie zawsze wprowadzal tylko jeden znak, jesli zawsze bedzie wprowadzany tylko i wylacznie jeden znak da sie bez curses ?