1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <iostream> #include <fstream> #include <cstdlib> #include <vector> #include <string> using namespace std; int main(){ const int line = 0; string list[ 10 ] = { "dummyFile1.txt", "dummyFile2.txt", "file1.txt" }; int file_num = 3; for( int j = 0; j <= file_num; j++ ){ ifstream InputFile( list[ j ] ); // 每次迴圈用到的都是不同的ifstream物件 cout << list[ j ]; if( InputFile.is_open() ) { // 測試檔案是不是被成功開啟 while( InputFile.good() ) // 讀取錯誤格式的資料時(包含讀到EOF), 回傳值為 false cout << (char)InputFile.get(); } getchar(); }// end of for ( int j ... /* 在迴圈結束, 解構 ifstream 物件, 檔案也自動關閉, 與每次開檔共用一個ifstream物件 * 的差別在於 : 讀取錯誤(包含讀到EOF), 或是開檔開失敗時, 錯誤旗標將會被升起, 意味 * 著只要之前有一個檔案開失敗, 後面的檔案就算開成功, 也不會執行 while loop 裡面的 * 程式碼 */ }// end of main |
Direct link: https://paste.plurk.com/show/293960