Input bez potrzeby wciskania entera.

0

Chce zeby uzytkownik nie musial wciskac entera po wprowadzonej wartosci na input, pomoglby mi ktos jak mozna to zrobic ?

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 ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1