我有像一条线的文本文件:输入到阵列
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