C++用String输出字符串的问题

# include <iostream>
# include <string>
using namespace std;
int main()
{
string str;
getline(cin, str);

cout<<"你输入的是"<<str<<endl;
return 0;
}

要输入两次才可以,而且只有第一次输入有效??哪里错了

你用的编译工具是VC++6.0吧  这是个bug  不过微软已经解决了修复了这个bug

 

解决办法是

进入到VC++6.0的安装目录Microsoft Visual Studio\VC98\Include,找到名为string的文件,注意不是string.h,然后找到下面这段代码:

elseif (_Tr::eq((_E)_C,_D)) 

{_Chg = true; 

  _I.rdbuf()->snextc(); 

  break; 


 

把_I.rdbuf()->snextc();这一行注释掉,然后在它的下面添加一行:_I.rdbuf()->sbumpc();

重新启动VC++6.0即可。

 

 

 

图片上传了。

 

 希望对您有所帮助

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-19

C语言关于字符串的学习,打印并输出我们的字符串(string)

第2个回答  2013-01-05
测试了一下,只有VC6有你说的这个问题,用g++就没有这个问题。解决办法是,问候一下比尔他母亲吧,然后换成高版本的VC
第3个回答  2013-01-05
程序本身没有问题,你的编译器有可能有问题
第4个回答  2013-01-05
# include <iostream>
# include <string>
using namespace std;
int main()
{
string str;
cin.getline( str, 5, '\n' );
cout<<"你输入的是"<<str<<endl;

return 0;
}追问

加\n 不行,还要输入两次

追答

cin>>str;

相似回答