我正在寫一個練習的程序,它將讀取文件中的數據並將其格式化爲可讀。到目前爲止,我有一些代碼會將頭部與其下的數據分開。那就是:爲什麼不執行for循環?
int main() {
ifstream in("records.txt");
ofstream out("formatted_records.txt");
vector<string> temp;
vector<string> headers;
for (int i = 0; getline(in,temp[i]); ++i) {
static int k = -1;
if (str_isalpha(temp[i])) {
headers[++k] = temp[i];
temp.erase(temp.begin() + i);
}
else {
temp[i] += "," + headers[k];
}
}
}
(str_isalpha()
只是適用isalpha()
在一個字符串中的每個字符的功能)現在,for循環在這個程序不執行,我想不通爲什麼。有人知道嗎?
編輯:至於建議,我把它改成
string line;
for (int i = 0; getline(in,line); ++i) {
temp.push_back(line);
不過跳過for循環乾脆。
是getline參數中的逗號嗎? – Holograham 2010-05-02 01:22:13
是的,這就是參數如何在函數中分離,不是嗎? – Maulrus 2010-05-02 01:34:10