2010-05-06 93 views
0

請問,什麼包含fstream變量? A可以在fstream上找到許多教程,但是沒有ona實際上說什麼是fstream文件;聲明在開始。謝謝。C++ fstream變量

+2

也許您可以澄清問題?這完全不清楚你想知道什麼。 – 2010-05-06 21:25:45

+0

你只是想知道哪個頭包含? – Troubadour 2010-05-06 21:48:11

+1

這是一個文件訪問的抽象,它是*旨在*不透明。也就是說,你不應該*關心*它如何在引擎蓋下實現。只要使用它。 (注意:你*可以*看看它是如何爲你的編譯器+操作系統實現的,如果你堅持的話,但是如果沒有真正的理由就不會鼓勵它。) – dmckee 2010-05-06 21:53:32

回答

2

fstream類是處理文件輸入和輸出的對象。它大體上等同於一個ifstream和ostream對象,因爲您可以將它用於輸入和輸出。這個小小的演示會創建一個文件並向其寫入數據。

#include <fstream> 
using namespace std; 

int main() 
{ 
fstream myFile; 
myFile.open("data.txt"); 
myFile << "This will appear in the file."; 
myFile.close(); 
} 

什麼是酷的fstream的對象是,你可以用它們來讀取和寫入二進制存儲器映像文件(以保護從編輯文件的數據),並設置各種標誌來控制的方式,其中fstream的過程輸入和輸出。例如:

此fstream是一個輸出流,它清除fout.txt的數據並以二進制寫入。

fstream foutOne("fout.txt", ios::binary | ios::out | ios::trunc) 

這fstream是一個輸出流,它不清除fout.txt的數據,但附加到它的結尾,並寫入二進制。

fstream foutTwo("fout.txt", ios::binary | ios::out | ios::app) 

如果我記得沒錯,foutTwo會崩潰,如果fout.txt不存在,而foutOne不會。您可以(也應該總是)檢查fstream是否在打開文件後立即正確加載,如下所示:

if(!foutTwo) 
{ cout << "File open error!\n"; exit(EXIT_FAILURE); } 
+0

+1,但'ifstream'和'ofstream'優於'ios :: in'和'ios :: out'-它們提供編譯時安全性,因此您不能嘗試違反權限。 – Potatoswatter 2010-05-06 21:53:24

2

fstream對象用於打開文件以輸入(即讀取文件的內容)和輸出(即寫入文件)。

還有ifstream和ofstream對象,它們將輸入和輸出分隔爲兩個不同的對象。例如,如果您想要讀取未格式化的文件並將格式化後的輸出寫入其他文件,這非常有用。

0

std :: fstream是一個包含對文件的讀/寫訪問的類。它繼承自iostream,因此它包含所有C++流提供的所有常用方法來讀取和寫入文件。欲瞭解更多信息,請參閱its documentation和有關您的C++手冊IO的章節。