[c++][语言语法]stringstream iostream ifstream

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

 

读取至char*的情况

  1. 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 

 

读取至std::string的情况:


第一种方法:

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

第二种方法:

#include <string>  
#include <fstream>  
#include <sstream>  
std::ifstream t("file.txt");  
std::stringstream buffer;  
buffer << t.rdbuf();  
std::string contents(buffer.str());
posted @ 2016-03-24 13:48  南水之源  阅读(684)  评论(0编辑  收藏  举报