【发布时间】:2020-10-15 06:14:20
【问题描述】:
所以,我有课
class MySuperClass {
public:
std::string buffer;
};
并且想将buffer 打印到std::cout。
下面是一些关于从文件中填充字符串的代码:
MySuperClass msc;
std::fstream file("./favicon.ico", std::fstream::in | std::fstream::binary);
if (file.is_open()) {
std::stringstream ss;
while (!file.eof())
ss << static_cast<uint8_t>(file.get());
msc.buffer.assign(ss.str());
file.close();
}
当我输出字符串时,一切正常。它打印得很乱,但有些东西。但是当我在buffer 上调用c_str() 并尝试打印时,它什么也没打印。
【问题讨论】:
-
@phuclv 你的评论应该是答案。
-
@Wander3r 完成。我上次出门,所以没时间回答
-
您不应该期望在执行此操作时看到任何明智的结果。并非所有字节序列都可以被解释为文本,这取决于您选择的编码;当然通常它们不会是有任何意义的文本。
标签: c++ stdstring null-terminated