C++:ifstream通过getline读取文件会忽略最后一行空行

getline是读取文件的常用函数,虽然使用简单,但是有一个较容易被忽视的问题,就是文件最后一行空行会被忽略。

#include 
#include 
#include 
using namespace std;

void readWholeFileWithGetline(string fileName)
{
	string tmpStr;
	int i = 0;
	ifstream iReadFile(fileName);
	if(iReadFile.is_open())
	{
		while(getline(iReadFile, tmpStr))
		{
			i++;
			cout<

 假设文件abc.txt内容为

123
456
789

最后没有空行

运行程序输出:

1{123}

2{456}

3{789}

 可以看到读到了3行完整的内容

 假设文件abc.txt内容为

123
456
789

最后有一行空行

运行程序输出:

1{123}

2{456}

你可能感兴趣的:(C/C++,c++)