Donc, j'écris un programme qui traite de la lecture et de l'écriture dans un fichier. J'utilise la fonction getline() car certaines des lignes du fichier texte peuvent contenir plusieurs éléments. Je n'ai jamais eu de problème avec getline jusqu'à maintenant. Voici ce que j'ai.Aide C++ avec la fonction getline avec ifstream
Le fichier texte ressemble à ceci:
John Smith // Client name
1234 Hollow Lane, Chicago, IL // Address
123-45-6789 // SSN
Walmart // Employer
58000 // Income
2 // Number of accounts the client has
1111 // Account Number
2222 // Account Number
Et le code comme ceci:
ifstream inFile("ClientInfo.txt");
if(inFile.fail())
{
cout << "Problem opening file.";
}
else
{
string name, address, ssn, employer;
double income;
int numOfAccount;
getline(inFile, name);
getline(inFile, address);
// I'll stop here because I know this is where it fails.
Quand je débogués ce code, je trouve que le nom == "John", au lieu du nom == "John Smith", et Adresse == "Smith" et ainsi de suite. Est-ce que je fais quelque chose de mal. Toute aide serait très appréciée.
Ce programme compile et fonctionne comme prévu pour moi. Etes-vous sûr que vous n'aviez pas déjà quelque chose comme 'cin >> nom; cin >> adresse; 'que vous avez remplacé par' getline' et oubliez simplement d'enregistrer le fichier source et/ou recompilez le programme avant de le tester à nouveau? –
WFM (travaille pour moi). J'ai collé votre code dans un fichier source, ajouté divers préfixes includes et 'std ::', collé le texte dans un fichier 'ClientInfo.txt' (suppression // des commentaires), ajouté une ligne imprimant' name' à 'std :: cout', compilé et couru. 'name 'était' John Smith' pour moi. –
Pourquoi utilisez-vous le style c 'getline' au lieu de' istream :: getline'? – dmckee