J'écris un programme pour un exercice qui va lire les données d'un fichier et le formater pour qu'il soit lisible. Jusqu'à présent, j'ai un peu de code qui va séparer un en-tête des données qui vont dessous. Ici, il est:Pourquoi cette boucle for-line ne s'exécute-t-elle pas?
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()
est juste une fonction qui applique isalpha()
à chaque caractère dans une chaîne) Maintenant, la boucle for dans ce programme ne s'exécute pas, et je ne peux pas comprendre pourquoi . Est-ce que quelqu'un sait?
EDIT: Comme l'a suggéré, je l'ai changé à
string line;
for (int i = 0; getline(in,line); ++i) {
temp.push_back(line);
encore la saute pour boucle tout à fait.
est qu'une virgule dans le paramètre getline? – Holograham
Ouais, c'est comme ça que les arguments sont séparés dans une fonction, n'est-ce pas? – Maulrus