标题:键盘缓冲区问题
只看楼主
beyondlyf
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-8
 问题点数:0 回复次数:6 
键盘缓冲区问题
先看下面程序:

#include "stdio.h"
#include "string.h"
main()
{int i;
char a[80];
for(i=0;getchar()!='/n';i++)
scanf("%c",&a[i]);
puts(a);
system ("pause");}
运行时输入:abcdefg↙后光标移至下一行,并没有按照我的意愿输出刚刚我输入的一串字符:abcdefg,这到底是什么原因,是不是与键盘缓冲什么的有关,有劳哪位详细指点指点  。。像这种问题以前我还有碰到过很多 这些都到底是为什么啊
搜索更多相关主题的帖子: 缓冲区 键盘 abcdefg include pause 
2008-05-08 19:16
beyondlyf
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-8
得分:0 
补充一下:这类关于缓冲的问题其实个人觉得真的很重要,可是在网上很少有关于这个问题的论述,能系统地把这个问题讲清楚的 似乎我还没见到..
2008-05-08 19:27
dongfly111
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-3-25
得分:0 
for(i=0;getchar()!='/n';i++)
for(i=0;getchar()!='/n';i++)  //这句话中的/n什么意思
2008-05-08 19:41
beyondlyf
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-8
得分:0 
是回车符啊 s
2008-05-08 19:46
雨中飛燕
Rank: 1
等 级:新手上路
帖 子:765
专家分:0
注 册:2007-10-13
得分:0 
看清楚书本吧

[color=white]
2008-05-08 19:53
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
得分:0 
首先,回车是\n
其次,for循环当中的条件 getchar() 会获取一个字符,所以会导致错误
我有一修改方法作为参考:
char letter;
for(i=0; (letter=getchar())!='\n';i++)
    a[i]=letter;
2008-05-08 20:17
dongfly111
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-3-25
得分:0 
是因为你的/n错误
是因为你的/n错误,应当是\n
2008-05-09 17:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-213213-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.124484 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved