我有一个.gcode格式的输出文件,由std :: ostream * object编写。我想在输出文件中编辑,然后再次写入std :: ostream *对象。 有没有什么步骤可以继续进行?
答案 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";}