#include#includeint main(){char key;printf("press a key");key=getch();printf("you press %c",key);return 0;}在TC中,先显示“press a key",你按个键后,显示”you press“,再显示你按的那个键。对应在linux中的C语言要如何写呢?我是这样写的但是结果是只输出了“you press"再输出你按的那个键。我要如何修改呢?#include#includeint main(){ printf("press a key"); fflush(stdout); char key; initscr(); key = getch(); endwin(); printf("you press %c",key); return 0;} 问题补充:这位高手所说的system("pause"); 请问是不是暂停屏幕用的,就像TC中在调试时常用getch()来暂停屏幕看输出,但我用getch()是想不按回车键在键盘上捕获所按的键,目前只是显示出这个按键,日后要做成一按这个键不用按回车就立马去执行一些操作,我不是要简单的暂停,不过很感激你提供了暂停的另一种方法。谢谢!但我的问题还没有解决。getchar()要按一下回车程序才读取输入,能不能不按回车,只要一按键,程序马上做出反应。getchar()经过我试验后发现不行,达不到我要的效果,请高手们再帮帮忙。谢谢!原因:getch()和getche()不是标准C函数,是TC专用的。。。你可以试试system("pause");记住包含#include 模式实现如下:在windows下可以通过#include 使用getch(),但是conio.h并不是一个标准的头文件,conio也不是标准的c库。所以如果在Linux下的c程序中#include ,编程就会报错: No Such file or directory!那么如果想在Linux下使用与getch() 功能相同的函数,怎么办呢?我们可以通过以下的程序模拟实现getch()。#include /* for tcxxxattr, ECHO, etc */#include /* for STDIN_FILENO *//*simulate windows' getch(), it works!!*/int getch (void){ int ch; struct termios oldt, newt;// get terminal input's attribute tcgetattr(STDIN_FILENO, &oldt); newt = oldt; //set termios' local mode newt.c_lflag &= ~(ECHO|ICANON); tcsetattr(STDIN_FILENO, TCSANOW, &newt); //read character from terminal input ch = getchar(); //recover terminal's attribute tcsetattr(STDIN_FILENO, TCSANOW, &oldt); return ch;}当然你也可以参考CSDN的:http://download.csdn.net/source/1957263作者:jackx@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除地址:https://jackxiang.com/post/3253/版权所有。转载时必须以链接形式注明作者和原始出处及本声明!