很多時候在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.rdbuff()
// 關閉文件流
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();