[英]Reading text file line by line into parallel arrays C++
无法将信息从文本文件读取到并行数组。 该信息在文件中的排列方式如下:
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;
}
有任何想法吗? 似乎它正在尝试在第一个命令或其他命令之后将字符串读取为int字符串。
>>提取运算符将行尾\\ n留在输入流中。 因此,下一条getline将不会读取您想要的行,而只会读取订单行的尾随\\ n。 要么单独使用getline,然后在事实结束后从该行中提取int,要么确保在提取后跳过该行的其余部分。
另外,本·沃格特和约翰说了什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.