繁体   English   中英

将文本文件逐行读取到并行数组C ++

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM