【发布时间】:2010-03-19 15:48:30
【问题描述】:
嗨,下面是我的功能:
string Employee::get_print(void) {
string out_string;
stringstream ss;
ss << e_id << " " << type << endl;
out_string = ss.str();
return out_string;
}
e_id 和 type 是 int,它们包含来自 Employee 类的值。但是当我将它们传递给字符串流时,当我尝试输出它时,它们只会清除字符串。但是,如果我在ss << "Some text" << endl; 中没有int,则此输出很好。我做错了什么=S
//编辑
好的; 这是调用代码:
tmp = cur->get_print();
其中 tmp 是一个字符串,cur 是一个员工对象。
这段代码……
stringstream out;
out << "Test " << e_id << " " << e_type;
return out.str();
重新运行“测试”,仅此而已。如果我取出 "Test " << 我返回的字符串是 ""
如果这有什么不同的话,我在 Mac OS/X 10.6.2 上使用 GCC 4.2。
【问题讨论】:
-
对我来说很好;你能显示调用代码吗?
-
您可以将该代码缩短至少两行(即 40%,不包括空白行),而不会降低其可读性。
-
“他们只是清除字符串”是什么意思?
-
我看不出代码有任何问题。我需要查看更多上下文代码。另外,说
get_print()。而且你不需要创建临时的string,只需返回ss.str()。 -
更新了代码并试图解释更多。
标签: c++ string int stringstream