A-A+

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

2016年05月12日 C++函数 暂无评论 阅读 198 次

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

标签:

给我留言