【发布时间】:2018-06-16 22:44:52
【问题描述】:
好的,所以我正在尝试从文本文件中读取数据并将其存储到变量中。然后我想检查是否(变量 i == x)。但是,当我执行变量时,我不等于 x,即使我已经通过调试器并且它确实如此!有任何想法吗?变量是char类型。
while (inFile >> type >> xpos >> ypos >> zpos >> scale)
{
if (type == "Floortile")
{
Model* floor = new Model(g_pD3DDevice, g_pImmediateContext);
if (FAILED(floor->LoadObjModel("assets/Model/Floor_tile.obj", "assets/Textures/Groundtex.bmp")))
{
DXTRACE_MSG("Failed to load model");
}
}
【问题讨论】:
-
"Floortile"是字符串文字,char的常量数组。如果不编写自定义重载,则无法与单个char和==进行比较。 -
另一方面,如果通过“变量是char类型”。你的意思是
type也是一个char数组,那么你遇到了一个稍微不同的问题,并且不小心比较了两个数组的地址。在这种情况下,您可能希望将std::string用于type。它可以与带有==运算符的字符串文字进行比较,而无需额外的代码。 -
非常感谢,这很有意义,但是我设法找到了解决方法:)
-
在这种情况下建议共享解决方案或删除问题。离开这个悬空没有意义。
-
解决方法如下
标签: c++ if-statement char ifstream directx-11