不同文字檔案格式有不同的讀檔寫法。在此我整理我常用的讀檔方式,遇到不同的文字檔案格式,可以快速地使用以下不同的方法取得文字檔內的資料。
(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,則檔案內容會被洗掉。
沒有留言:
張貼留言