c++中的一个问题,从标准输入读取多个string 对象,直到输入回车结束。

从标准输入读取多个string 对象,把它们连接起来存放到一个更
大的string 对象中,并输出连接后的string 对象,我的代码如下:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string result_str;
cout << "Enter strings" << endl;
while (cin>>str && str !="\n")

result_str = result_str + str;

cout << result_str<<endl;
return 0;
}
中间str !="\n"总是有问题,请问各位高手,应该怎么改,最好是能运行出来的。多谢了,有加分

这个问题我昨天问过老师……我说不使用标记怎么做,老师说还要想想……



可以使用标记,例如这样:

#include <iostream>
#include <string>
using namespace std;
int main()
{
string result_str,str;
cout << "Enter strings" << endl;
while (cin>>str && str !="#")
        result_str = result_str + str;
cout << result_str<<endl;
return 0;
}

这样的话就是输入#结束!


可以留下QQ,如果明天老师告诉我更好的方案,我会通知你的!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-15
使用strcmp或者strlen,class string可能没有部署==的操作符重载。
第2个回答  2013-05-15
#include <iostream>
#include <string>

using namespace std;

int main()
{
string result_str;
string str;
cout << "Enter strings:" << endl;
while (getline(std::cin, str) && !str.empty())
{
result_str = result_str + str;
}
cout <<"result_str:" << result_str<<endl;
return 0;
}
第3个回答  2013-05-15
是在按了回车后就马上输出结果吗?如果是的话可以从屏幕读取一行字符串在进行处理
相似回答