我可以仅使用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";
}
还有其他方法吗? (我不想使用标准流)。提前谢谢。
答案 0 :(得分:6)
C ++程序中的输入和输出可以通过四种方式完成:
<<
和>>
。FILE
API:fopen
,fprintf
/ fwrite
/ fgets
/ fread
/等。我认为存在处理FILE
的Boost I / O流,但是您仍在使用流运算符<<
和>>
。Boost I / O流不应该是一个独立的API,而是使用上述I / O系统之一来简化程序员的一些事情。
答案 1 :(得分:2)
io::stream_buffer
派生自std::basic_streambuf
,因此您可以使用原生basic_streambuf
公共方法,也可以使用boost::filesystem
个流,但所有此类都派生自std::
{1}}课程。
http://www.boost.org/doc/libs/1_50_0/libs/filesystem/doc/reference.html#File-streams