为了账号安全,请及时绑定邮箱和手机立即绑定

如图是对于第一个程序的运行结果 ,在getline(cin,s)后加getchar()为什么没有用?

如图是对于第一个程序的运行结果 ,在getline(cin,s)后加getchar()为什么没有用?

波斯汪 2022-05-27 07:03:00
#include <iostream>#include <string>using namespace std;void main(){string s;getline(cin,s);cout<<s<<endl;}钱能的C++书中的例子。我在运行的时候,发现输入字符串后,需要连着输入两个回车符才能输出结果,而正常输入字符串不应该是输完字符串后再按一个回车就可以了吗?图片如下而如果是#include <iostream>#include <string>using namespace std;void main(){char a[40];cin.getline(a,40);cout<<a<<endl;}则输入输出是正常的。输入字符串后再按一个回车符结束。此外还想问想正确输入一个字符串,使用string的话,应该怎么写比较好?谢谢了图片是对于第一个程序的运行结果在getline(cin,s)后加getchar()也没用啊,这真是vc6的bug吗?
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

我用的dev c++ 运行的没错啊,
一个回车就行。
要不你在getline(cin,s);后加个getchar()清下输入。

查看完整回答
反对 回复 2022-05-30
?
倚天杖

TA贡献1828条经验 获得超3个赞

VC 没用过,不过 string类直接用 cin>>s 不就可以了吗?为什么还要getline呢,这不是增加开销吗?

查看完整回答
反对 回复 2022-05-30
?
三国纷争

TA贡献1804条经验 获得超7个赞

我告诉你正解吧。有人说是VC6的BUG,有人说是getline函数在VC6中默认回车为终止符。我偏向于第二种

查看完整回答
反对 回复 2022-05-30
  • 3 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信