【发布时间】:2009-05-04 15:59:19
【问题描述】:
我有一个文本文件,其中一行如下:
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,谢谢。我必须使用 get 而不是 >> 因为我正在阅读的某些行不仅仅是“James Dean”,它们长达 20 个字符......例如:“William K. Woodward”是另一个。
所以,如果我只使用 get,那么它会很好地读取第一行,但随后我会在第二行得到相同的混乱文本。
代码如下:
infile.get(nameArray[i], 20);
infile >> yearArray[i];
infile.get(departmentArray[i], 15);
infile >> payArray[i];
【问题讨论】:
-
您应该使用一些分隔符,还是使用制表符?如果您使用空格,如果您也允许名称或部门使用数字,则会导致问题。
标签: c++