If you really want the characters "as they are entered", you cannot use C io. You have to do it the unix way. (or windows way)
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
int main() {
char r[81];
int i;
struct termios old,new;
char c;
tcgetattr(0,&old);
new = old;
new.c_lflag&=~ICANON;
tcsetattr(0,TCSANOW,&new);
i = 0;
while (read(0,&c,1) && c!='
' && i < 80) r[i++] = c;
r[i] = 0;
tcsetattr(0,TCSANOW,&old);
printf("Entered <%s>
",r);
return 0;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…