使用C++將文件流轉換成字符串

很多時候在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();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章