- getch() ? - 不是标准库中的函数,在Linux中一般情况无法使用
 
- getchar() + printf(“\b”) ? - 貌似使用getchar()读入,再输出一个退格符将原来回显的字符删除应该是可以的,但是在实际试了一下发现根本不行。。。 
- 原因:终端驱动器确实会读一个字符,但是他的输入只有到’\n’ 或 EOF 才会结束,所以如果不输入回车就不会实际执行getchar(). 当然,如果上一次输入的字符并没有全部读完是可以getchar()把没有读完的字符读掉。 
 
- 解决办法1 
 2
 3
 4
 5
 6
 7
 8
 9void system_pause(void) 
 {
 getchar();
 puts("Press any key to continue...");
 system("stty raw");
 getchar();
 system("stty cooked");
 printf("\b");
 }
这段代码也是我在网上找到的,我的理解是:
- getchar()读掉上面多余的’\n’,按程序的实际情况添加
- 输出”Press any key to continue…”
- system(“stty raw”);:将终端驱动器改为一次一个字符的模式,即输入一个字符就结束输入
- getchar(); 读一个字符
- system(“stty cooked”); 将终端驱动器改回一次一行的模式
- printf(‘\b’); 退格,将回显的字符删除
p.s. 以上仅仅是个人理解,欢迎大家指出其中的错误