2012-07-24 55 views
2

我可以輸出一些文本到一個文件,只使用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

CRT功能如何? – 2012-07-24 05:44:51

+2

爲什麼你不想使用標準流?你對他們有什麼? – johnathon 2012-07-24 05:46:47

+0

我試圖熟悉提升。我真的是一個初學者,文檔有時會誤導我 – 2012-07-24 05:48:37

回答

6

輸入和輸出可以以四種方式進行:

  1. 用C++ I/O流。這是推薦的方式。即使使用Boost I/O流,它也使用場景後面的標準I/O流,並使用流操作符<<>>
  2. 與c FILE API:fopenfprintf/fwrite/fgets/fread /等。我認爲存在處理FILE的Boost I/O流,但是您仍在使用流操作符<<>>
  3. 在Windows上,使用POSIX子系統文件描述符。我認爲這些也可以用於Boost I/O流。
  4. 本機文件處理。在POSIX系統(例如Linux,BSD,OSX)上,這與上述3相同,在Windows上見例如。 this link

升壓I/O流不應該是一個獨立的API,而應該是使用上述I/O系統之一來簡化程序員的一些事情。