Dans mon programme, fin
est un objet ifstream
et song
est un string
. Lorsque le programme s'exécute, il ouvre music.txt et lit à partir du fichier.C++: getline() ignorant les premiers caractères
J'essaie de lire chaque ligne avec: getline(fin,song);
J'ai essayé toutes les variantes de getline
mais il ignore les 10 premiers caractères de chaque ligne avant de commencer à saisir des caractères. Par exemple, si le nom de la chanson est "songsongsongsongsongname", il se peut qu'elle ne prenne que "songname".
Des idées?
Voici le code simplifié:
void Playlist::readFile(ifstream &fin, LinkedList<Playlist> &allPlaylists, LinkedList<Songs*> &library)
{
string song;
fin.open("music.txt");
if(fin.fail())
{
cout << "Input file failed. No saved library or playlist. Begin new myTunes session." << endl << endl;
}
else
{
while(!fin.eof() && flag)
{
getline(fin, song);
cout << song << "YES." << endl;
}
.....}
Poster une source compilable minimale. Notez également que tant de contrôles ne sont généralement pas nécessaires: 'while (getline (fin, song)) {...}' est assez bon. – dirkgently
Eh bien, votre variable 'flag' n'est pas définie. –
J'ai pris l'initialisation "flag" lors de la simplification du code. Cela devrait être vrai. Voyez-vous quelque chose de mal avec la syntaxe getline/utilisation ci-dessus? – Gabe