Pages

2011年6月6日 星期一

[C++] 讀取文字檔

不同文字檔案格式有不同的讀檔寫法。在此我整理我常用的讀檔方式,遇到不同的文字檔案格式,可以快速地使用以下不同的方法取得文字檔內的資料。
    (1) include<fstream>
         include<sstream>
         以上這兩個標頭檔先include起來。
    (2) 以下是我常用的標準讀取文字檔案的寫法:
          readData()
          {
               ifstream inputFile;
               inputFile.open(“input.txt”,ifstream::in);  //允許input operation。
               string line;
               int lineNumber = 0;
                                                            // 從inputFile,get一段文字到line。
                                                            // 將string命名為line有好處,讓使用
                                                            // getline時不會用錯。
               while(getline(inputFile,line)
               {
                     lineNumber++;
                     cout << lineNumber << “ “;
                     istringstream token(line);
                     string word;
                     while(token >> word)
                     {
                           cout << word << " ";
                     }
                     cout << endl;
               }
          }
         
          這個函式可以切token,並在每一行之前加上行號。
    (3)  getline(cin,line); //會讀入一整行,包括空白,遇到 '\n' 停止讀取。
           cin >> line;        //停止讀取於空白鍵。
           getline(cin,line,’?');   //代表讀到 '?' 就停止讀取。
           getline不會讀到 '\n'。
    (4)   string str = “12345”;
           int len = str.length();     //回傳幾個字。len = 5;
           string tmp = str.substr(0,2);  //從第0個位置取兩個字符。即 "12"。
    (5)  檔案開啟:
           ifstream inputFile;
           inputFile.open(“input.txt”);   //如此檔案內容不會被洗掉
           int oneNumber,anotherNumber;
           inputFile >> oneNumber >> anotherNumber;
           //從檔案讀兩個數設給oneNumber跟anotherNumber。
    (6)  ofstream開檔,如果沒有設ios::app,則檔案內容會被洗掉。

沒有留言:

張貼留言