IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    c++中ifstream一次读取整个文件

    admin发表于 2016-05-12 06:07:37
    love 0

    c++中一次读取整个文件的内容的方法,ifstream读取文件:

    一、读取至char*的情况:

    std::ifstream t;  
    int length;  
    t.open("file.txt");      // open input file  
    t.seekg(0, std::ios::end);    // go to the end  
    length = t.tellg();           // report location (this is the length)  
    t.seekg(0, std::ios::beg);    // go back to the beginning  
    buffer = new char[length];    // allocate memory for a buffer of appropriate dimension  
    t.read(buffer, length);       // read the whole file into the buffer  
    t.close();                    // close file handle  
      
    // ... do stuff with buffer here ...

    二、读取至std::string的情况:

    1>

    #include <string>  
    #include <fstream>  
    #include <streambuf>  
      
    std::ifstream t("file.txt");  
    std::string str((std::istreambuf_iterator<char>(t)),  
                     std::istreambuf_iterator<char>());

    2>

    #include <string>  
    #include <fstream>  
    #include <sstream>  
    std::ifstream t("file.txt");  
    std::stringstream buffer;  
    buffer << t.rdbuf();  
    std::string contents(buffer.str());

    代码出处:http://stackoverflow.com/questions/2602013/read-whole-ascii-file-into-c-stdstring



沪ICP备19023445号-2号
友情链接