答案是使用ifstream和getline函数逐行读取文件。包含fstream和string头文件,创建ifstream对象打开文件,通过while循环调用getline读取每行内容并输出,直至文件结束,最后关闭文件。

在C++中,逐行读取文本文件是一个常见需求,通常使用标准库中的fstream和getline()函数来实现。下面介绍一种简单、可靠的方法。
包含必要的头文件
要操作文件并逐行读取内容,需要引入以下两个头文件:
- #include <fstream>:用于文件输入输出
- #include <string>:因为getline()操作的是字符串
使用ifstream和getline逐行读取
核心思路是创建一个std::ifstream对象打开文件,然后用std::getline()函数一行一行读取内容,直到文件结束。
示例代码如下:
立即学习“C++免费学习笔记(深入)”;
#include <iostream><br>#include <fstream><br>#include <string><br><br>int main() {<br> std::ifstream file("example.txt");<br> std::string line;<br><br> if (!file.is_open()) {<br> std::cerr << "无法打开文件!" << std::endl;<br> return 1;<br> }<br><br> while (std::getline(file, line)) {<br> std::cout << line << std::endl;<br> }<br><br> file.close();<br> return 0;<br>}
关键细节说明
std::getline(file, line)会读取一行,直到遇到换行符为止,且不会将换行符存入line中。
- 如果文件不存在或路径错误,is_open()返回false,应做错误处理
- 循环条件直接使用getline()的返回值,它在读到末尾或出错时返回false
- 不需要手动关闭文件也可以,因为析构函数会自动关闭,但显式调用更清晰











