我可以只使用 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++ 程序中的输入和输出可以通过四种方式完成:
- 使用 C++ I/O 流。这是推荐的方式。即使使用 Boost I/O 流,它也在幕后使用标准 I/O 流,并使用流运算符
<<
和>>
. - C
FILE
API:fopen
,fprintf
/fwrite
/fgets
/fread
/ETC。我认为有处理FILE
的 Boost I/O 流,但是您仍在使用流运算符<<
和>>
. - 在 Windows 上,使用 POSIX 子系统文件描述符。我认为这些也可以用于 boost I/O 流。
- 本地文件处理。在 POSIX 系统(例如 Linux、BSD、OSX)上,这与上面的 3 相同,在 Windows 上参见例如this link .
Boost I/O 流不应该是一个独立的 API,而是使用上述 I/O 系统之一来为程序员简化一些事情。
关于c++ - boost/输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624790/