我在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字符串,为什么我们需要将它放在“string()”中呢?难道不能写得像:
File.open((FileName.str()).c_str(), std::ios::in | std::ios::binary);
答案 0 :(得分:1)
是的,它可以这样写。
使用
std::string(FileName.str())
绝对没有意义。