您的位置:首页 > 编程语言 > C语言/C++

C/C++中读取输入数据时的'\n'问题

2012-02-18 12:24 281 查看
在C中,使用scanf输入的数据实际是先将数据加载到stdin中,然后从stdin中将数据取出到scanf的地址中,但是实际的输入最后会有一个'\n',从stdin中取出数据时这个字符将会留在stdin中,如果此时我们继续使用scanf不会出现什么问题,但是使用支持空格的gets(),将会从stdin中取出最后一个'\n',gets()可能读取不到数据。

在C中有一个stdin stdout刷新的函数,貌似fflush()。使用这一函数清空stdin中的数据就可以了。

在C++中getline()相当于上文的gets(),它将从标准输入中取出字符,其中的'\n'也会替代你所需要的字符,可以在此函数之前加入cin.get()清除标准输入之中的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: