日期:2014-05-16  浏览次数:20661 次

[求助]谁对c语言熟悉,一个问题
getc()和getchar()在用户输入后必须按回车程序才可以继续,有没有不需要按回车程序就可以继续运行的类似于getc()和getchar()的函数?

在linux环境下哦


------解决方案--------------------


可以试试设置缓冲区的个数为1


------解决方案--------------------
你可以通过禁止缓存来实现,见下面的代码。缺省的流I/O是缓存的,回车会刷新缓存。

#include <stdio.h>

int main() {
int i;
setbuf(stdin, NULL);
while(1) {
i = fgetc(stdin);
printf( "i=%d\n ", i);
}
}

------解决方案--------------------
http://blog.csdn.net/anyue417/archive/2006/08/24/1114543.aspx

#include <stdio.h>

main()
{
int c;
/*最初终端驱动处于普通的一次一行模式*/

system( "stty raw "); /*使终端驱动处于一次一字符模式*/

c=getchar();

system( "stty cooked "); /*使终端驱动回到一次一行模式*/
}