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());

相关文章:

  • 2022-12-23
  • 2021-12-26
  • 2021-07-29
  • 2021-08-17
  • 2022-12-23
  • 2022-12-23
  • 2022-01-15
  • 2021-11-30
猜你喜欢
  • 2022-12-23
  • 2021-12-26
  • 2021-11-09
  • 2022-12-23
  • 2021-08-28
  • 2021-12-26
  • 2021-11-13
相关资源
相似解决方案