将文本文件一行一行地读入并行数组
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
基本上,我需要将名称、街道地址和城市/州/zip作为行拉入字符串数组,然后将订单大小拉入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;
}
任何想法?似乎它试图在一阶之后将字符串读取为整型。
>提取操作符在输入流中留下行尾的n。因此,下一个getline将不会读取您想要的行,而只是读取订单行末尾的n。要么专门使用getline并从事实之后的行中提取int,要么确保在提取之后跳过该行的其余部分。
另外,Ben Voigt和john说的话
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 从C++dll访问C#中的一行主要参数
- C++17中的并行执行策略
- 在C++中,我如何接受不同于同一行的用户输入
- 并行用于C++17中数组索引范围内的循环
- 如何从一行中读取特定数量的字符?(C++)
- 如何在Elixir中调用递归函数并行
- OpenMP:并行更新数组总是需要减少数组吗
- 如何使用OpenMP并行这两个循环
- 如何使用OpenMP并行化此矩阵时间矢量运算
- 如何使用OpenMP使这个循环并行
- 读取最后一行代码算法 - c++ 时出现问题
- 遍历并行数组以确定C++中的最大数字
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 有没有办法在一行中填充矢量图
- 需要将一行代码从C++ Qt翻译成PyQt
- 使用与 openmp C++并行的循环计算矩阵中每一行的最小值
- 将文本文件一行一行地读入并行数组