提升/输出到文件

Vis*_*iva 2 c++ file-io boost 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";
}
Run Code Online (Sandbox Code Playgroud)

还有另外一种方法吗?(我不想使用标准流).提前致谢.

Som*_*ude 6

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

  1. 使用C++ I/O流.这是推荐的方式.即使使用Boost I/O流,也都使用场景后面的标准I/O流,并使用流运算符<<>>.
  2. 的C FILEAPI: fopen,fprintf/ fwrite/ fgets/ fread/等.我认为有Boost I/O流可以处理FILE,但是你仍然在使用流操作符<<>>.
  3. 在Windows上,使用POSIX子系统文件描述符.我认为这些也可以用于Boost I/O流.
  4. 本机文件处理.在POSIX系统(例如Linux,BSD,OSX)上,这与上面的3相同,在Windows上看到例如此链接.

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