Я пишу программу для упражнения, которое будет считывать данные из файла и форматировать их для удобства чтения. Пока у меня есть немного кода, который отделяет заголовок от данных, которые идут под ним. Вот оно:
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.