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}文章来源:https://www.toymoban.com/news/detail-810398.html
2{456}文章来源地址https://www.toymoban.com/news/detail-810398.html
3{789}
可以看到读到了3行完整的内容
假设文件abc.txt内容为
123
456
789最后有一行空行
运行程序输出:
1{123}
2{456}
到了这里,关于C++:ifstream通过getline读取文件会忽略最后一行空行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!