我從C++獲得了這段代碼,但是我不知道爲什麼添加了「std :: string()」。用輸入名稱打開文件
std::ifstream File;
std::stringstream FileName;
FileName << Name; //Name being a string that has been passed as an input to the function.
// Eg."MyFile"
newFileName << ".txt"; //"MyFile.txt"
File.open(std::string(FileName.str()).c_str(), std::ios::in | std::ios::binary);
我的問題是,既然STR()返回一個字符串,並c_str()獲得一個字符串並將其轉換爲C字符串,爲什麼我們需要把它的「字符串()」內?難道它不會寫成:
File.open((FileName.str()).c_str(), std::ios::in | std::ios::binary);
std :: string()創建另一個臨時字符串對象,這是不必要的。 – YaleCheung