文本文件(Text mode files)
類ofstream, ifstream 和fstream 是分別從ostream, istream 和iostream 中引申而來的。這就是為什么 fstream 的對象可以使用其父類的成員來訪問數(shù)據(jù)。
一般來說,我們將使用這些類與同控制臺(console)交互同樣的成員函數(shù)(cin 和 cout)來進(jìn)行輸入輸出。如下面的例題所示,我們使用重載的插入操作符<<:
// writing on a text file
#include
int main () {
ofstream examplefile (“example.txt”);
if (examplefile.is_open()) {
examplefile << “This is a line.”n“;
examplefile << ”This is another line.“n”;
examplefile.close();
}
return 0;
}
file example.txt
This is a line.
This is another line.
從文件中讀入數(shù)據(jù)也可以用與 cin的使用同樣的方法:
// reading a text file
#include
#include
#include
int main () {
char buffer[256];
ifstream examplefile (“example.txt”);
if (! examplefile.is_open())
{ cout << “Error opening file”; exit (1); }
while (! examplefile.eof() ) {
examplefile.getline (buffer,100);
cout << buffer << endl;
}
return 0;
}
This is a line.
This is another line.
上面的例子讀入一個文本文件的內(nèi)容,然后將它打印到屏幕上。注意我們使用了一個新的成員函數(shù)叫做eof ,它是ifstream 從類 ios 中繼承過來的,當(dāng)?shù)竭_(dá)文件末尾時返回true 。
狀態(tài)標(biāo)志符的驗證(Verification of state flags)
除了eof()以外,還有一些驗證流的狀態(tài)的成員函數(shù)(所有都返回bool型返回值):
bad()
如果在讀寫過程中出錯,返回 true 。例如:當(dāng)我們要對一個不是打開為寫狀態(tài)的文件進(jìn)行寫入時,或者我們要寫入的設(shè)備沒有剩余空間的時候。
fail()
除了與bad() 同樣的情況下會返回 true 以外,加上格式錯誤時也返回true ,例如當(dāng)想要讀入一個整數(shù),而獲得了一個字母的時候。
eof()
如果讀文件到達(dá)文件末尾,返回true。
good()
這是最通用的:如果調(diào)用以上任何一個函數(shù)返回true 的話,此函數(shù)返回 false 。
要想重置以上成員函數(shù)所檢查的狀態(tài)標(biāo)志,你可以使用成員函數(shù)clear(),沒有參數(shù)。
相關(guān)推薦:等考C++備考之如何學(xué)習(xí)C++與面向?qū)ο螅航M合北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |