getline是讀取文件的常用函數(shù),雖然使用簡單,但是有一個較容易被忽視的問題,就是文件最后一行空行會被忽略。
#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;
}
?假設(shè)文件abc.txt內(nèi)容為
123
456
789最后沒有空行
運行程序輸出:
1{123}文章來源:http://www.zghlxwxcb.cn/news/detail-810398.html
2{456}文章來源地址http://www.zghlxwxcb.cn/news/detail-810398.html
3{789}
?可以看到讀到了3行完整的內(nèi)容
?假設(shè)文件abc.txt內(nèi)容為
123
456
789最后有一行空行
運行程序輸出:
1{123}
2{456}
到了這里,關(guān)于C++:ifstream通過getline讀取文件會忽略最后一行空行的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!