C++按行读取txt文件内容(具体请看代码)

如题所述

这是改进后的程序代码,用于读取并显示txt文件的内容:

#include
#include
#include

using namespace std;

int main() {
string a[100]; // 采用string类型,存储100行文本,不要使用数组
int i = 0;

ifstream infile;
infile.open("d:\abc\0.txt", ios::in);

while (!infile.eof()) { // 若未到文件结束,一直循环
getline(infile, a[i], '\n'); // 读取一行,以换行符结束,存入a[]中
i++; // 下一行
}

for (int ii = 0; ii < i; ii++) {
cout << a[ii] << endl; // 显示读取的内容
}

infile.close();
return 0;
}

该程序首先定义了一个字符串数组a,用于存储从文件中读取的文本。接着,通过打开指定路径的文件进行读取,并使用getline函数逐行读取,直到文件结束。在读取过程中,每读取一行,就将其存入数组a中,同时增加行数计数器i。最后,通过for循环遍历数组a,逐行输出读取的内容。

需要注意的是,使用while (!infile.eof())循环读取文件内容可能存在一些问题,因为它在文件末尾时会执行一次不必要的循环。为了解决这个问题,可以将while循环改为while (getline(infile, a[i], '\n')),这样在读取到文件末尾时会自动停止循环。

另外,为了确保文件能够正确关闭,应该在程序结束前调用infile.close()函数。这样可以释放文件句柄,避免资源泄漏。

以上就是改进后的程序代码,希望对您有所帮助。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜