我有像一條線的文本文件:輸入到陣列
James Dean 10 Automotive 27010.43
,我需要讀取該文件,並把上述各4的成陣列。
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++;
}
代碼是剛切下來給你什麼,我試圖做一個想法,但是當我運行它,我得到這樣的:
James Dean -858993460 -92559631349317830000000000000000000000000000
000000000000000000.00
感謝您的幫助。
====編輯========================================= =
我從getline變成了,謝謝你。我必須使用get而不是>>,因爲我閱讀的部分內容不僅僅是「James Dean」,他們長達20個字符......例如:「William K. Woodward」是另一個。因此,如果我只是使用get,那麼它讀取第一行的罰款,但是然後我得到第二行相同的文本。
下面是代碼:
infile.get(nameArray[i], 20);
infile >> yearArray[i];
infile.get(departmentArray[i], 15);
infile >> payArray[i];
您應該使用一些分隔符,還是使用製表符?如果您使用空格,那麼如果您允許姓名或部門的號碼,則會導致問題。 – schnaader 2009-05-04 16:02:40