setvbuf not able to make stdin unbuffered

前端 未结 2 1765
無奈伤痛
無奈伤痛 2020-11-27 05:44

My main intention was to make getchar return as soon as it gets a character instead of waiting for the ENTER key. I tried this

int ma         


        
2条回答
  •  旧时难觅i
    2020-11-27 06:37

    In case you are trying this under Linux or another Unix-like system, it is the terminal that buffers the input and only passes an entire line. You can use ncurses to circumvent this:

    #include 
    
    int main()
    {
        initscr();
        getch();
        endwin();
    
        return 0;
    }
    

    Compile with:

    gcc -o main main.c -lncurses
    

提交回复
热议问题