以下為一個簡單讀檔範例: #include<bits/stdc++.h> using namespace std; int main(int argc, char** argv) { ifstream inputFile("haha"); string line; while(getline(inputFile, line)) { int a = 0; stringstream tkn(line); tkn >> a; cout << " a = " << a << endl; } return 0; } 文字檔 haha 內容: 3 5 6 注意結尾有多一換行。 ----------------------------------------------------- 此情況下,程式執行結果: a = 3 a = 5 a = 6 a = 0 ----------------------------------------------------- getline 在讀檔最後一行,會讀到空的字串。造成多了一筆無效資料。 所以 stringstream 切 token 時,要特別小心,用 if(tkn >> a) 條件判斷 stringstream 是否 fail。
Coding for Passion, Solving Problems