c++ - boost/输出到文件

标签 c++ boost file-io stream

我可以只使用 boost 库将一些文本输出到文件吗?

我手上的代码(官方文档):

#include <ostream>
#include <boost/iostreams/device/file.hpp>
#include <boost/iostreams/stream.hpp>

namespace io = boost::iostreams;

int main()
{
    io::stream_buffer<io::file_sink> buf("log.txt");
    std::ostream                     out(&buf);
    // out writes to log.txt
    out << "abc";
}

还有别的办法吗? (我不想使用标准流)。提前致谢。

最佳答案

C++ 程序中的输入和输出可以通过四种方式完成:

  1. 使用 C++ I/O 流。这是推荐的方式。即使使用 Boost I/O 流,它也在幕后使用标准 I/O 流,并使用流运算符 <<>> .
  2. C FILE API:fopen , fprintf/fwrite/fgets/fread/ETC。我认为有处理 FILE 的 Boost I/O 流,但是您仍在使用流运算符 <<>> .
  3. 在 Windows 上,使用 POSIX 子系统文件描述符。我认为这些也可以用于 boost I/O 流。
  4. 本地文件处理。在 POSIX 系统(例如 Linux、BSD、OSX)上,这与上面的 3 相同,在 Windows 上参见例如this link .

Boost I/O 流不应该是一个独立的 API,而是使用上述 I/O 系统之一来为程序员简化一些事情。

关于c++ - boost/输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624790/

相关文章:

c++ - 如何写在文件中的特定行?

c++ - 命名空间 boost 没有成员

C++:有没有办法让这个反射宏与 IntelliSense 一起工作?

javascript - 从地址获取经纬度并写入文件

java - 高效地将大量数据加载到 Jtable

c++ - C++ 中 func(int& x) 和 func(int &x) 的区别

c++ - 用于在 C++ 中隐藏符号的 LD 脚本

c++ - 为什么不采用非类型偏特化元组?

c++ - 试图摆脱 C++ boost 警告

C++写入文件