所以我试图将输入文件读入二维数组。
我遇到的问题是我只想读取输入文件中的某些行,但我只是不知道将第二个忽略放在我的代码中的位置
这是名为“Fruit.txt”的输入文件:
Oroblanco Grapefruit
Winter
Grapefruit
Gold Nugget Mandarin
Summer
Mandarin
BraeBurn Apple
Winter
Apple
还有我的代码:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
const int MAX_ROW = 6;
const int MAX_COL = 4;
void FileInput(string strAr[MAX_ROW][MAX_COL])
{
ifstream fin;
fin.open("Fruit.txt");
int columnIndex;
int rowIndex;
rowIndex = 0;
while(fin && rowIndex < MAX_ROW)
{
columnIndex = 0;
while(fin && columnIndex < MAX_COL)
{
getline(fin, strAr[rowIndex][columnIndex]);
fin.ignore(10000,'\n');
columnIndex++;
}
rowIndex++;
}
fin.close();
}
我现在的代码是这样存储的:
Oroblanco Grapefruit // strAr[0][0]
Grapefruit // strAr[0][1]
Gold Nugget Mandarin // strAr[0][2]
Mandarin // strAr[0][3]
BraeBurn Apple // strAr[1][0]
Apple // strAr[1][1]
我希望它是这样的:
Oroblanco Grapefruit // strAr[0][0]
Gold Nugget Mandarin // strAr[0][1]
BraeBurn Apple // strAr[0][2]
我只是不知道我应该把第二个忽略放在哪里。如果我把它放在第一次忽略之后,那么它会跳过我想要的更多。
最佳答案
您的代码很好,只需修复变量 columnIndex
。
并使用 3 ignores 因为您也需要忽略空行。
fin.ignore(10000,'\n');
fin.ignore(10000,'\n');
fin.ignore(10000,'\n');
关于c++ - 跳过输入文件中的读取行 C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43827205/