我可以单独使用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++程序中的输入和输出可以通过四种方式完成:
- 使用C++I/O流。这是推荐的方式。即使使用Boost I/O流,也都是在后台使用标准I/O流,并使用流运算符
<<
和>>
- C
FILE
API:fopen
、fprintf
/fwrite
/fgets
/fread
/等。我认为有一些Boost I/O流处理FILE
,但您仍然使用流运算符<<
和>>
- 在Windows上,使用POSIX子系统文件描述符。我认为这些也可以用于Boost I/O流
- 本机文件处理。在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-流