提升/输出到文件

boost / outputting to a file

本文关键字:文件 输出 提升      更新时间:2023-10-16

我可以单独使用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";
}

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

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

  1. 使用C++I/O流。这是推荐的方式。即使使用Boost I/O流,也都是在后台使用标准I/O流,并使用流运算符<<>>
  2. C FILE API:fopenfprintf/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系统来简化程序员的一些事情。

io::stream_buffer是从std::basic_streambuf派生的,因此您可以使用本机basic_streambuf公共方法,也可以使用boost::filesystem流,但所有这些类都从std::类派生。

http://www.boost.org/doc/libs/1_50_0/libs/filesystem/doc/reference.html#File-流