我怎样才能访问std :: ostream文件?

时间:2018-02-01 11:57:12

标签: c++ ostream

我有一个.gcode格式的输出文件,由std :: ostream * object编写。我想在输出文件中编辑,然后再次写入std :: ostream *对象。 有没有什么步骤可以继续进行?

1 个答案:

答案 0 :(得分:2)

类std :: ostream不处理缓冲或硬件I / O.它只处理格式和转换。它需要与从std :: streambuf派生的类相关联,以便输出到任何地方。

#include <iostream>
#include <sstream>
int main()
{std::ostream stream(nullptr); // useless ostream (badbit set)
stream << "Hello World"; // nothing happens (well, failbit is also set)

stream.rdbuf(std::cout.rdbuf()); // uses cout's buffer
stream << "Hello World\n"; // prints to cout

std::stringbuf str;
stream.rdbuf(&str); // uses str
stream << "Hello World"; // writes to str
std::cout << "str = '" << str.str() << "'\n";}