gpt4 book ai didi

c++ - 可以用 cout 打印但不能用相同的对象创建新字符串?

转载 作者:行者123 更新时间:2023-11-30 02:42:34 28 4
gpt4 key购买 nike

我是C++新手,遇到一个脚本直接打印输出提示这样的情况:

cout << setw(10) << Object->GetAuthor().GetId() << " ";
cout << Object->GetDate() << " ";
cout << Object->GetCaseNumber() << " ";

这在脚本中有效并打印到控制台,现在我想保存字符串而不是打印它以提示,但事实是这不是此示例中的字符串,它们可能是 int 变量或其他东西。

我不明白为什么cout << Object->GetType() << " ";同时工作 string x = Object->GetType()没有。

有没有办法将打印到控制台的内容作为字符串保存?

最佳答案

是的,有打印成字符串的流。

像这样:

#include <sstream>

// ...

std::ostringstream s;
s << setw(10) << Object->GetAuthor().GetId() << " ";
s << Object->GetDate() << " ";
s << Object->GetCaseNumber() << " ";

std::string result = s.str();

原因

string x = Object->GetType()

不起作用的是 Object->GetType()不返回可以分配给字符串的内容。

<<运算符“知道”如何将许多东西转换为字符串表示形式(技术术语是它对许多不同类型重载)。

关于c++ - 可以用 cout 打印但不能用相同的对象创建新字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26963133/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com