J'essaie d'écrire un programme où je lis un fichier texte, puis prend chaque ligne dans le fichier texte et les stocke dans un vecteur de chaîne. Je pense que je suis capable d'ouvrir le fichier texte mais j'ai remarqué qu'après avoir ouvert le fichier texte, tout ce qui se passe après ce point ne s'exécute pas. Par exemple, j'ai une déclaration cout à la fin de ma fonction principale qui sort quand j'entre le nom d'un fichier qui n'existe pas. Cependant, si je tape un nom de fichier existe, je n'obtiens aucune sortie de la dernière instruction cout. Quelqu'un sait pourquoi c'est? Merci!Pourquoi mes instructions cout ne s'impriment-elles pas après l'ouverture d'un fichier texte?
int main()
{
vector<string>line;
string fileName = "test.txt";
ifstream myFile(fileName.c_str());
int i = 0;
int count = 0;
vector<string>lines;
cout << "test" << endl;
if (myFile.is_open())
{
cout << "test2" << endl;
while (!myFile.eof())
{
getline(myFile, lines[i],'\n');
i++;
}
myFile.close();
}
if (!myFile.is_open())
{
cout<< "File not open"<< endl;
}
myFile.close();
cout << "Test3" <<endl;
return 0;
}
'lines' est un vecteur vide. 'lines [i]' est invalide pour toute valeur de 'i'. Votre programme se bloque simplement. –
[Pourquoi 'while (! MyFile.eof())' est faux] (http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – Barmar
Vous écrire hors des limites du vecteur avec 'lignes [i]' –