Je dispose d'un fichier texte avec une ligne comme:du fichier txt aux tableaux
James Dean 10 Automotive 27010.43
et je besoin de lire ce fichier et de mettre chacun des 4 ci-dessus dans des tableaux.
char nameArray[MAX][NAME_MAX];
int yearArray[MAX];
char departmentArray[MAX][DEP_MAX];
double payArray[MAX];
while(i < MAX && infile) {
infile.getline(nameArray[i], 20);
infile >> yearArray[i];
infile.getline(departmentArray[i], 15);
infile >> payArray[i];
cout << nameArray[i] << " " << yearArray[i] << " " << departmentArray[i] << " " << fixed << setprecision(2) << payArray[i] << endl;
i++;
}
Le code est coupé juste pour vous donner une idée de ce que je suis en train de faire, mais quand je lance cela, je reçois quelque chose comme:
James Dean -858993460 -92559631349317830000000000000000000000000000
000000000000000000.00
Merci pour l'aide.
==== Modifier ========================================= =
J'ai changé de getline pour obtenir, merci pour cela. Je dois utiliser get et non >> parce que certaines des lignes que je lis sont plus que juste "James Dean", elles ont jusqu'à 20 caractères de long ... ex: "William K. Woodward" en est une autre. Donc, si j'utilise simplement get, alors il lit la première ligne in fine, mais ensuite je reçois le même texte foiré pour la deuxième ligne.
Voici le code:
infile.get(nameArray[i], 20);
infile >> yearArray[i];
infile.get(departmentArray[i], 15);
infile >> payArray[i];
Vous devez utiliser un délimiteur ou utilisez-vous des onglets? Si vous utilisez des espaces, cela poserait des problèmes si vous autorisez des numéros pour le nom ou le département. – schnaader