本文主要是介绍C++:ifstream通过getline读取文件会忽略最后一行空行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
getline是读取文件的常用函数,虽然使用简单,但是有一个较容易被忽视的问题,就是文件最后一行空行会被忽略。
#include <iostream>
#include <fstream>
#include <string>
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<<i<<"{"<<tmpStr<<"}"<<endl;}}
}int main()
{readWholeFileWithGetline("./abc.txt");return 0;
}
假设文件abc.txt内容为
123
456
789最后没有空行
运行程序输出:
1{123}
2{456}
3{789}
可以看到读到了3行完整的内容
假设文件abc.txt内容为
123
456
789最后有一行空行
运行程序输出:
1{123}
2{456}
这篇关于C++:ifstream通过getline读取文件会忽略最后一行空行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!