我如何添加这个变量到我的路径ifstream
how can i add this variable to my path for ifstream?
我试图追加我的路径,并包含一个变量作为路径的一部分,但我得到一个错误。
怎么了?
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);
相关文章:
- 为什么我的变量没有更新,我的 LED 没有亮起?
- 为什么我的变量存在于其范围之外
- 为什么我的字符串变量没有打印完整的字符串?
- 为什么我的 c++ 程序检查不是初始化的变量?
- 为什么我的全局变量似乎没有变化?
- C ++程序如何返回我的数组或写入全局变量
- 为什么我的数组值与此处的全局变量不匹配?
- 为什么弹出我的堆栈会返回垃圾而不是初始变量?
- 我的包装函数缺少变量?
- 在我的变量打印C++后无法获得 $ 打印符号
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- 为什么我的双变量通过添加 c++ 显示 nan?
- 我应该使我的局部变量常量还是可移动的
- constexpr 函数在编译时获取值,即使我的变量不是 constexpr
- 我可以在我的类中使用 omnetpp.ini 变量吗?
- 我的类中应该有一个Allocator作为成员变量吗
- 我可以在初始化之前使用 std::array 成员变量中的 data() 指针吗?发出警告
- 为什么我的 std::atomic<int> 变量不是线程安全的?
- 为什么访问我的引用捕获变量会导致我的 lambda 函数出现段错误?
- 为什么我的程序没有更改结构变量中的值?