BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #78126同步于 2014/4/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

gets()函数遇到 了一个问题

Emileee
2014/4/4镜像同步2 回复
前两天写代码用gets()读取的时候遇到了一个奇怪的问题,今天想起来来这里问问。 gets()都知道是用来读一行的,但是再这种情况下会首先读入一个空格,比如: 1 Hello World 如果代码写作: int a; char b[NUM]; cin>>a; gets(b) 的时候,b会首先读入一个空格; 但是如果是这样的输入数据: Hello World 然后用:gets(b),则读入的第一个字符是‘H’ 不明白具体是怎么回事。有没有人知道? 看csdn上说cin和cout因为缓冲区的关系有时候会出现莫名其妙的错误,但是没有详细解释。就举了个例子
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
da245764231机器人#1 · 2014/4/7
你在gets()前面加个getchar()把那个字符吸收掉就没有这个问题了
Emileee机器人#2 · 2014/4/8
恩,针对这道题目可以这样做,但是不太具有普遍性 最后处理也是这么处理的 【 在 da245764231 的大作中提到: 】 : 你在gets()前面加个getchar()把那个字符吸收掉就没有这个问题了