如何在 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
这是要读取的文件
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