#include<iostream>
#include<fstream>
using namespace std;
int main()
{
filename = "test.txt";
filebuf fin;
fin.open(filename.c_str(), ios::in);
istream isInput(&fin);
istreambuf_iterator<char> bit(isInput), eit;
string content(bit, eit); // content 为filename的全部内容
cout << content << endl;
return 0;
}
优化方法:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
string filename = "test.txt";
ifstream inFile(filename, ios::in|ios::end);
size_t filelen= inFile.tellg();
inFile.seekg(0);
//string content((istreambuf_iterator<char>(inFile)), istreambuf_iterator<char>()); // 如果文件内容比较短,可以直接用这种方法
string content;
content.reserve(filelen); //一次性申请足够空间
content.assign(istreambuf_iterator<char>(inFile), istreambuf_iterator<char>());
cout << content << endl;
return 0;
}
参考另一篇《 stringstream 的用法介绍》有其它详细方法的介绍。
1960

被折叠的 条评论
为什么被折叠?



