如何在 C++ 中读取 n 到 n + i 行?

How to read n to n + i lines in c++?

这是要读取的文件

5
Name1
Name2
Name3
Name4
Name5

我当前的阅读代码是:

void readData(string fileName, string names[], int n) {
    ifstream myFile("file.txt");
    string line;

    if (myFile.is_open())
    {
        myFile >> n;  // read first line
        cout << n; 

        for (int i = 0; i < n; ++i) {
            getline(myFile, line);
            names[i] = line;
            cout << names[i] << endl;
        }
    }
}

我想将名字放入数组names[],但即使n = 5,它似乎只运行了4 次。这是为什么?

这是我得到的当前输出:

5
Name1
Name2
Name3
Name4

myFile >> n 时没有读完第一行。所以第一个 getline 只读取该行的其余部分,它是空的

 myFile >> n; 
 getline(myFile, line); // read rest of line

 getline(myFile, line); // read whole line
 n =  stoi(line);   // convert to int