C++ getline() 只读取文本文件中的最后一行
C++ getline() is only reading the last line in a text file
我正在尝试读取一个文本文件并输出每一行,但它只输出最后一行。我如何输出每一行?我的代码:
int main()
{
std::ifstream ReadFile("example.txt");
std::string line;
if (ReadFile.is_open())
{
while (std::getline(ReadFile, line));
{
std::cout << line << "\n";
}
ReadFile.close();
}
else
{
std::cout << "Unable to open file";
}
}
我正在按照 http://www.cplusplus.com/doc/tutorial/files/
中的示例进行操作
txt 文件内容:
This is one line
This is another line
And a third line
输出:
https://i.imgur.com/t6XXmBG.png
这里还有其他答案建议在 while 循环中添加 endl 或“\n”,但这对我来说仍然不起作用。
while 循环后有一个分号,这意味着它会继续迭代并且什么都不做,因为您有一个空语句(;
表示空语句)。这就是为什么你得到最后一行的原因,因为在最后一次(第 3 次)迭代中,行被文件的最后一行填充。
while (std::getline(ReadFile, line));
如下所示更新您的 while 循环以获得所需的结果:
while (std::getline(ReadFile, line))
{
std::cout << line << "\n";
}
我正在尝试读取一个文本文件并输出每一行,但它只输出最后一行。我如何输出每一行?我的代码:
int main()
{
std::ifstream ReadFile("example.txt");
std::string line;
if (ReadFile.is_open())
{
while (std::getline(ReadFile, line));
{
std::cout << line << "\n";
}
ReadFile.close();
}
else
{
std::cout << "Unable to open file";
}
}
我正在按照 http://www.cplusplus.com/doc/tutorial/files/
中的示例进行操作txt 文件内容:
This is one line
This is another line
And a third line
输出:
https://i.imgur.com/t6XXmBG.png
这里还有其他答案建议在 while 循环中添加 endl 或“\n”,但这对我来说仍然不起作用。
while 循环后有一个分号,这意味着它会继续迭代并且什么都不做,因为您有一个空语句(;
表示空语句)。这就是为什么你得到最后一行的原因,因为在最后一次(第 3 次)迭代中,行被文件的最后一行填充。
while (std::getline(ReadFile, line));
如下所示更新您的 while 循环以获得所需的结果:
while (std::getline(ReadFile, line))
{
std::cout << line << "\n";
}