[c] 关于linux缓冲输入

软件和网站开发以及相关技术探讨
回复
me
帖子: 972
注册时间: 2007-09-14 19:51

[c] 关于linux缓冲输入

#1

帖子 me » 2007-12-14 11:06

代码: 全选

#include<stdio.h>
int main()
{
char a;
printf("请输入一个数字");

..................../* 我不会写的代码 */

if(a='1')
printf("你输入的是1");
if(a='2')
printf("你输入的是2");

....................

return 0;
}
例如在上面的程序中,再添加什么代码,就可以只输入1(不加回车),就可以立即打印出“你输入的是1”?
请各位朋友不吝赐教

谢谢你们!!
me
帖子: 972
注册时间: 2007-09-14 19:51

#2

帖子 me » 2007-12-16 10:48

谢谢你们
me
帖子: 972
注册时间: 2007-09-14 19:51

#3

帖子 me » 2007-12-16 11:20

再顶一下
me
帖子: 972
注册时间: 2007-09-14 19:51

#4

帖子 me » 2007-12-16 11:49

终于知道了
google

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


system("stty cooked");/*使终端处于一次一行模式*/
头像
qlhn
帖子: 736
注册时间: 2006-08-25 10:37
联系:

#5

帖子 qlhn » 2008-02-10 12:14

对我有提示。
wuchuanren
帖子: 99
注册时间: 2008-01-31 16:55

#6

帖子 wuchuanren » 2008-02-14 18:07

楼主的所要做的只是用 tcgetattr()和tcsetattr()函数把 ICANNON 位关掉就可以了.
顺便附带一下,这两个函数包含了很多tty的设置,包括回显之类的. 有些没法处理的 ,比如说控制台的宽度和高度,可以用ioctl获得.

函数和常量名记不清楚了,参考一下man
头像
qlhn
帖子: 736
注册时间: 2006-08-25 10:37
联系:

#7

帖子 qlhn » 2008-02-18 14:34

也可以参考 curses 库编程.(关于终端的)

#include <curses. h>
回复