//strfile.cpp -- read stings from a file #include <iostream> #include <fstream> #include <string> #include <cstdlib> int main() { using namespace std; ifstream fin; //定義輸入檔案流物件fin fin.open("tobuy.txt"); //用fin物件開啟檔案“tobuy.txt” if ( fin.is_open() == false ) //開啟失敗則返回錯誤 { cerr << "Can"t open file. Bye.\n"; exit(EXIT_FAILURE); } string item; //定義字串物件 int count = 0; getline(fin, item, ":"); //從fin物件中向item物件中讀取字串,遇到“:”字元則完成一次讀取 while(fin) //只要沒讀到檔案尾,則迴圈讀取並輸出讀取內容 { ++count; cout << count << ": " << item << endl; getline(fin, item, ":"); } cout << "Done\n"; fin.close(); //關閉檔案 cin.get(); //此行作用是為了讓程式執行視窗能持續顯示,以便觀察執行效果。 return 0; } 執行效果如圖:注:tobuy.txt 的內容為:需要注意的一點是,透過測試,可以得知:當冒號 “ :”指定為分界字元後,換行符將被視為常規字元,因此檔案第一行末尾的換行符將成為包含“cottage cheese”的字串中的第一個字元。同樣,第二行末尾的換行符是第9個輸入字串中唯一的內容。
//strfile.cpp -- read stings from a file #include <iostream> #include <fstream> #include <string> #include <cstdlib> int main() { using namespace std; ifstream fin; //定義輸入檔案流物件fin fin.open("tobuy.txt"); //用fin物件開啟檔案“tobuy.txt” if ( fin.is_open() == false ) //開啟失敗則返回錯誤 { cerr << "Can"t open file. Bye.\n"; exit(EXIT_FAILURE); } string item; //定義字串物件 int count = 0; getline(fin, item, ":"); //從fin物件中向item物件中讀取字串,遇到“:”字元則完成一次讀取 while(fin) //只要沒讀到檔案尾,則迴圈讀取並輸出讀取內容 { ++count; cout << count << ": " << item << endl; getline(fin, item, ":"); } cout << "Done\n"; fin.close(); //關閉檔案 cin.get(); //此行作用是為了讓程式執行視窗能持續顯示,以便觀察執行效果。 return 0; } 執行效果如圖:注:tobuy.txt 的內容為:需要注意的一點是,透過測試,可以得知:當冒號 “ :”指定為分界字元後,換行符將被視為常規字元,因此檔案第一行末尾的換行符將成為包含“cottage cheese”的字串中的第一個字元。同樣,第二行末尾的換行符是第9個輸入字串中唯一的內容。