所以我试图将输入文件读入二维数组。

我遇到的问题是我只想读取输入文件中的某些行,但我只是不知道将第二个忽略放在我的代码中的位置

这是名为“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/

10-09 07:59