将ifstream读入字符串的最有效方法是什么?

时间:2011-03-17 15:10:31

标签: c++ std

noob问题!我怎样才能将'整个ifstream'读成stdlib'字符串'?我现在用于所有项目的当前方式浪费了很多时间我想:

string code;
ifstream input("~/myfile");
char c1=input.get();
while (c1!=EOF)
{
    code+=c1;
    len++;
    c1=input.get();
}

BTW我更喜欢自己做行和空白管理。

2 个答案:

答案 0 :(得分:7)

string load_file(const string& filename)
{
    ifstream infile(filename.c_str(), ios::binary);
    istreambuf_iterator<char> begin(infile), end;
    return string(begin, end);
}

答案 1 :(得分:2)

#include <string>
#include <iostream>

int main() {
   std::string s;

   std::getline(std::cin, s, '\0');
   std::cout << s;
}