奇怪问题,执行scanf()函数时,当你输入一串字符串后,按下enter,那0dh('\n')是否也被放在键盘缓冲区中

Chxis 2003-03-11 08:34:32
是不是啊?

help!
...全文
50 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bugfree 2003-03-12
  • 打赏
  • 举报
回复
Sorry, I have not verify this when I paste my answer.
The correct is: When you type enter(0d0a)
only "0a" was put to the input buff, please try the following code, when you look back again:
#include <stdio.h>
int main()
{
char c;
for(;;)
{
c = getchar();
printf("%d\n",c);
}
return 0;
}
chinajiji 2003-03-11
  • 打赏
  • 举报
回复
当然要放入,
这样来清除:

fflush(stdin);
sandrowjw 2003-03-11
  • 打赏
  • 举报
回复
无论输入什么都会被放在缓冲区里,只不过有一些要经过处理,比如回车就如chinajiji(菜鸟叽叽) 所说,你可以把它flush掉。
Chxis 2003-03-11
  • 打赏
  • 举报
回复
那究竟是不是放在键盘缓冲区中??
chinajiji 2003-03-11
  • 打赏
  • 举报
回复
回车是:0x0d0a; 0x0a被放入缓存,(windows下,在linux下可能是0x0d);
hopeai 2003-03-11
  • 打赏
  • 举报
回复
是,回车被放入了缓存,如果你后面紧跟一个getchar()的话,那么得到的就是回车
bugfree 2003-03-11
  • 打赏
  • 举报
回复
No,
回车键是结束本次输入, 并不将它送入缓存

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧