很多时候在C++里面,读取文件的方式很多,加上操作字符串是比较方便的一种形式,因为string类里面提供的方法还是比较充足的,下面记录一种将文件读取成字符串的方法:
需要的基础类型:
string:字符串类型
ifstream:输入流
读取的一个过程:
//首先定义一下我们需要用到的变量
std::string CodeFilestr; // 假设我们现在要读取的是一个.cpp的代码文件
std::ifstream CodeInputStream; // 定义一个读取文件的输入流
// 这句代码的意思是可以保证输入流对象可以正常抛出异常
CodeInputStream.exceptions (std::ifstream::failbit | std::ifstream::badbit);
try{
// 打开文件
CodeInputStream.open("./Code.cpp"); // 参数一个const char*的字符串,代表文件的地址
// 定义一个字符串流
std::stringstream CodeStrstream;
// 把文件的输入流转换成字符串流
CodeStrstream << CodeInputStream.rdbuf()
// 关闭文件流
CodeInputStream.close();
// 转换字符串流到string
CodeFilestr = CodeStrstream.str();
}
catch (std::ifstream::failure e)
{
std::cout << "ERROR::SHADER::FILE_NOT_SUCCESFULLY_READ" << std::endl;
}
// 当然最后我们也可以将字符串转换成C风格
const char* Code = CodeFilestr.c_str();