将信息从文本文件读取到并行数组时遇到问题。信息在文件中的排列方式如下:
Name
Street Address
City, State, Zip
Order size
Name
Street Address
City, State, Zip
Order size
基本上,我需要将名称、街道地址和城市/州/邮编作为行拉入字符串数组,然后将订单大小拉入 int 数组进行一些计算。总共4个阵列。
问题是它会很好地读取第一个订单,但第二个订单看起来不同,输入和之后的所有订单都显示为数字:
John Doe
123 Main Street
City, State Zipcode
John Doe
123
Main Street
City, State Zipcode
9
0
9
9
4679937
9
0
9
9
4710208
这是相关的代码:
const int ORDERS = 10;
cout << "Reading from file..." << endl;
ifstream inputFile;
string name[ORDERS], streetAddress[ORDERS], cityStateZip[ORDERS];
string line;
int orderSize[ORDERS];
inputFile.open("Orders.txt");
for(int i = 0; i < ORDERS; i++)
{
getline(inputFile, line);
name[i] = line;
getline(inputFile, line);
streetAddress[i] = line;
getline(inputFile, line);
cityStateZip[i] = line;
inputFile >> orderSize[i];
}
inputFile.close();
for(int i = 0; i < ORDERS; i++)
{
cout << name [i] << endl;
cout << streetAddress[i] << endl;
cout << cityStateZip[i] << endl;
cout << orderSize [i] << endl;
}
有任何想法吗?似乎它试图在第一次订购或其他东西之后将字符串读取为整数。