请教关于scanf的问题

ymy1248227142 2012-03-25 11:10:54
#include <stdio.h>

void main(void)
{
char string[10];
scanf("%s", string);//第5句
printf("%s", string);第六句
}
linux gcc编译,
./a.out执行,然后奇怪了输入字符afks,回车,没反应,再输入字符串ert回车,现在才把前面的afks输出来,在第5和第6句之间加一句fflush(stdin);还是不行,我觉得应该,输入字符afks,回车马上就把afks输出来
请问这是什么原因,在VC下好像不会
...全文
162 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisial 2012-03-26
  • 打赏
  • 举报
回复
Linux试了没问题。scanf的时候别加‘\n’了。
赵4老师 2012-03-26
  • 打赏
  • 举报
回复
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。
Lynn_Iris 2012-03-26
  • 打赏
  • 举报
回复
没有问题
funway_lan 2012-03-26
  • 打赏
  • 举报
回复
非问题,linux上测试无问题,不过“第6句”这个注释前面要//
HAHSIYUAN 2012-03-25
  • 打赏
  • 举报
回复
你电脑反应慢了。。。。
七宝 2012-03-25
  • 打赏
  • 举报
回复
刚试了下也没出现你那样的问题。
xiyoulaoyuanjia 2012-03-25
  • 打赏
  • 举报
回复
1.刚gcc验证了可以正常运行而不会出现你说的问题!
2.fflush(stdin) 不能用在linux下 一般linux下用 while 进行有效字符的判断!
jiuchang 2012-03-25
  • 打赏
  • 举报
回复
现象挺奇怪,回头我试下,现在手头没有linux

69,369

社区成员

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

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