使用 getline 从文本文件创建 2 个并行字符串数组

Create 2 parallel string arrays from text file using getline

为此任务,我打开一个文本文件并尝试将第 1 行和第 3 行读入名为 front 的数组(分别位于索引 0 和 1 处),然后将第 2 行和第 4 行读入名为 back 的数组(分别在索引 0 和 1 处),但它并没有完全做到这一点。没有任何内容输入数组,我的循环逻辑必须关闭。我想按原样阅读每一行(包括空格)直到换行符。感谢任何帮助。

void initialize(string front[], string back[], ifstream &inFile)
{
    string fileName = "DevDeck.txt";    //Filename
    string line;
    inFile.open(fileName); //Open filename

    if (!inFile)
    {
        cout << "Couldn't open the file" << endl;
        exit(1);
    }

    //Create the parallel arrays
    while (!inFile.eof())   
    {       
        for (int index = 0; index < 4; index++)
        {       
            getline(inFile, line); 
            front[index] = line; //Store in first array

            getline(inFile, line); 
            back[index] = line; //Store in second array
        }
    }

}

你的循环 for (int index = 0; index < 4; index++) 有错误的条件,因为你总共需要 4 个字符串,但在每个循环中你得到 2 个,所以现在你会得到 8 个字符串。

我试过 运行 你的代码有这样的改变:

int main()
{
    string front[2];
    string back[2];

    ifstream inFile;

    initialize(front, back, inFile);

    cout << front[0] << endl << back[0] << endl << front[1] << endl << back[1];

    return 0;
}

对我来说效果很好。它显示:

line1
line2
line3
line4

为了进一步帮助您,您应该提供 DevDeck.txt 文件和调用此函数的代码段。