ReadKey() function, which blocks the execution of the program before pressing enikey. I have a couple of times this requirement pops up in the Unix console, but the getchar() function of the block blocks execution before pressing Enter, which is not very desirable in some cases. #include <stdio.h> #include <termios.h> #include <unistd.h> int main() { struct termios term; tcgetattr(STDIN_FILENO, &term); term.c_lflag &= ~(ICANON | ECHO); tcsetattr(STDIN_FILENO, 0, &term); if (getchar()) { printf(«Hello world!»); } return 0; } termios structure, which describes the terminal parameters. The c_lflag field c_lflag responsible for the so-called local options, i.e. for how the characters will be processed by the driver.ICANON bit, which is responsible for choosing the canonical or non-canonical (raw) input mode. The canonical mode for stdin set by default and implies, among other things, a string buffer, i.e. the requirement to press Enter each time you want to feed something getchar() . Accordingly, it is required to transfer stdin to the non-canonical mode.ECHO bit of the same termios field is responsible for the input echo, i.e., in this case, the display of the entered character on the screen. We remove / leave to taste.Source: https://habr.com/ru/post/15997/
All Articles