C++ IO类(3) 文件流
生活随笔
收集整理的這篇文章主要介紹了
C++ IO类(3) 文件流
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們可以通過文件流來控制文件的輸入以及輸出:
fstream: 創建一個未綁定的文件流
fstream fstrm("file.txt")??創建一個fstream,并打開名為s的文件 可以是字符串或指針, 可以設置打開的mode
文件流名.open("file.txt") 打開名未file.txt的文件,并將文件與fstrm綁定
文件流名.close(); 關閉指定文件
fstrm.is_open();???//bool 類型 觀察文件是否打開
假設我們要讀取一個文件中的內容,并將文件中的內容輸出到另一個文件中
具體操作如下:
首先我們創建兩個流,一個輸入流和一個輸出流:
將流與文件綁定后,我們就需要一個中介來接收讀入的數據和輸出數據
string total;注意:FSTREAM類型可以同時作輸入流和輸出流
fstream fileStream; //fstream可以同時適用istream和ostream我們需要一個讀取函數來把文件中讀取的內容輸入到字符串中:
istream& read(istream& is, string& item) {is >> item; return is; }然后逐行把字符串中的內容讀取到文件中:
if (input.is_open()) { //判斷是否成功打開while (read(input, total)) {cout << total << endl; //在控制臺中輸出結果Print(output, total); //將結果寫入到未}}elsecout << "open error" << endl;最后切記要把流給關閉:
//如果流要關聯另外文件,必須先關閉當前文件input.close();output.close();補充:文件可以設置追加模式,如追加寫模式(ostream::app)設置在open的后面
//追加寫入模式fstream myNewFile;myNewFile.open("myFileText.txt",ostream::app); //app每次寫前都定位到文件末尾for (int i = 0; i < 100; ++i) {char word = 'a';myNewFile << word;} #include<iostream> #include<fstream> #include<sstream> using namespace std; istream& read(istream& is, string& item); ostream& Print(ostream& os, const string& item);int main() {//fstream fstrm; //創建一個未綁定的文件流//fstream fstrm("file.txt"); //創建一個fstream,并打開名為s的文件 可以是字符串或指針 可以按mode的指定方式打開文件//fstrm.open("file.txt"); //打開名為s的文件,并將文件與fstrm綁定//fstrm.close(); //關閉指定文件//fstrm.is_open(); //bool類型 觀察是否打開ifstream input("myFileText.txt"); //創建一個輸入流并綁定一個指定文件,輸入流將從這個文件中讀取數據 ofstream output("myResultFile.txt"); //創建一個輸出流并綁定一個指定文件,流中的數據將輸出到這個文件string total;fstream fileStream; //fstream可以同時適用istream和ostreamfileStream.open("myFileText.txt"); //如果open成功,則open會設置流的狀態,使得good()為trueif (input.is_open()) { //判斷是否成功打開while (read(input, total)) {cout << total << endl; //在控制臺中輸出結果Print(output, total); //將結果寫入到未}}elsecout << "open error" << endl; //如果流要關聯另外文件,必須先關閉當前文件input.close();output.close();system("PAUSE");return 0; }istream& read(istream& is, string& item) {is >> item; return is; }ostream& Print(ostream& os, const string& item) {os << item << endl;return os; }?
總結
以上是生活随笔為你收集整理的C++ IO类(3) 文件流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: initrd.img相关
- 下一篇: 文件的文本打开方式和二进制打开方式的区别