我如何添加这个变量到我的路径ifstream

how can i add this variable to my path for ifstream?

本文关键字:变量 我的 我的路 ifstream 路径 何添加 添加      更新时间:2023-10-16

我试图追加我的路径,并包含一个变量作为路径的一部分,但我得到一个错误。

怎么了?

fstream fin("E:\Games\maps\" + this->MapNumber + ".map", ios::in|ios::binary|ios::ate);

this->MapNumber是USHORT

error: 13智能提示:表达式必须是整型或无作用域的枚举类型

c++ 中,您不能使用+来连接文字字符串。您可以使用+std::string s将它们连接起来,但这不适用于整数或其他类型。您需要使用来代替。在流中插入和提取将导致支持它的类型将自己表示为文本,但您可能已经从一般I/O中了解了这一点。

试试这样写:

std::stringstream filename;
filename << "E:\Games\maps\" << this->MapNumber << ".map";
std::fstream fin(filename.str().c_str(), ios::in|ios::binary|ios::ate);

就像其他所有内容一样,要使用某些内容,您需要首先包含声明它的头文件。为了使用std::stringstream,您需要包含<sstream>

不能在字符串和其他类型(如string)上使用操作符+,因此可以:

Option1:将所有变量转换为字符串并附加

string s = string("E:\Games\maps\") + string(itoa(this->MapNumber)) + string(".map");

option2:使用stringstream作为@k-ballo解释

option3:使用好的旧C fprintf(我个人最喜欢的)

char str[100];
fprintf(str, "E:\Games\maps\ %d .map", this->MapNumber);