C++ 入門指南 4.01
練習 23.6 參考程式 - 練習使用者輸入與檔案處理
// 引入標準程式庫中相關的輸入、輸出程式 #include <iostream> // 引入標準程式庫中相關的檔案處理程式 #include <fstream> // cout 為 std 中的輸出物件 using std::cout; // endl 為 std 中的斷行符號 using std::endl; // string 為 std 中的字串型態 using std::string; // cout 為 std 中的錯誤輸出物件 using std::cerr; // fstream 為 std 中的檔案處理類別 using std::fstream; // cin 為 std 中的輸入物件 using std::cin; int main(void) { // 使用者輸入的字元陣列 char inputtext[200]; // 讀取字串的暫存字元陣列 char readtext[200]; // 預計寫入檔名 string filename("userinput.txt"); // 宣告寫入檔案物件 fstream textfile; // 宣告讀取檔案物件 fstream readfile; // 使用者輸入文字 cout << "請輸入文字:"; cin.getline(inputtext, 200); // 將字元陣列轉換成字串 string writetext = inputtext; // 以指定檔名開啟檔案 textfile.open(filename, std::ios_base::app); // 先檢查檔案是否開啟 if (!textfile.is_open()) { // 顯示開啟失敗的訊息 cerr << "寫入失敗" << filename << endl; } else { // 開啟成功進行寫入 textfile.write(writetext.data(), writetext.size()); // 顯示寫入成功的訊息 cerr << "寫入成功" << endl; // 關閉檔案物件 textfile.close(); } // 以指定檔名開啟檔案 readfile.open(filename, std::ios::in); // 先檢查檔案是否開啟 if (!readfile.is_open()) { // 顯示開啟失敗的訊息 cerr << "開啟失敗" << filename << endl; } else { // 開啟成功進行讀取 readfile.read(readtext, sizeof(readtext)); // 顯示讀取成功的訊息 cerr << filename << " 開啟成功" << endl; // 顯示讀取到的檔案內容 cout << readtext << endl; // 關閉檔案物件 readfile.close(); } // 最後回傳 0 給作業系統 return 0; } /* 《程式語言教學誌》的範例程式 http://kaiching.org/ 檔名:exercise2306.cxx 編譯:g++ exercise2306.cxx 執行:./a.out 功能:C++入門指南單元二十三的練習 作者:張凱慶 */