Ich habe eine Textdatei mit einer Zeile wie:Eingabe von TXT-Datei auf Arrays
James Dean 10 Automotive 27010.43
und ich brauche diese Datei zu lesen und zu jedem der vier oben in Arrays setzen.
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++;
}
Der Code wird nur abgeholzt Sie eine Vorstellung davon zu geben, was ich zu tun versucht, aber wenn ich diese laufen, bekomme ich so etwas wie:
James Dean -858993460 -92559631349317830000000000000000000000000000
000000000000000000.00
Danke für die Hilfe.
==== bearbeiten ========================================= =
Ich wechselte von getline zu bekommen, danke dafür. Ich muss verwenden und nicht >> weil einige der Zeilen, die ich lese, mehr sind als nur "James Dean", sie sind bis zu 20 char lang ... ex: "William K. Woodward" ist ein anderer.
Also, wenn ich nur get, dann liest es die erste Zeile in Ordnung, aber dann bekomme ich den gleichen verpatzten Text für die zweite Zeile. Hier
ist der Code:
infile.get(nameArray[i], 20);
infile >> yearArray[i];
infile.get(departmentArray[i], 15);
infile >> payArray[i];
Sie sollten ein Trennzeichen verwenden, oder verwenden Sie Tabs? Wenn Sie Leerzeichen verwenden, würde dies zu Problemen führen, wenn Sie auch Nummern für den Namen oder die Abteilung zulassen. – schnaader