【发布时间】:2026-01-19 10:20:13
【问题描述】:
我正在尝试做一个 if 语句来查看名称是否等于特定单词。该名称只有 8 个字符长,因此我只能将其与 8 个或更少字符的单词进行比较。
但我遇到的问题是,如果我比较这两个值,我会得到这个错误:
'initializing': 无法从'initializer list' 转换为 'std::array'
当我从字符串中删除一个字母时,我想将其与它进行比较,不会再出现错误。但对我来说,为什么 Visual Studio 认为有 9 个字符而只有 8 个字符似乎没有意义。我之前使用比较来检查只有 4 个字符的字符串,这似乎工作正常。
if (lumps[i + h].name == TFixedString<8>{"LINEDEFS"})
{
}
【问题讨论】:
-
这看起来像
c++或基于错误消息的东西,而不是c#。 -
TFixedString定义为什么?还有lumps[i + h].name,那是std::string吗? -
@user3678781 类型对你来说不重要?
-
"LINEDEFS"实际上包含 8 个字符加上终止的'\0'字符。因此 9. -
嗯,当我想比较的名字似乎是 9 个字符时,我怎么能比较呢?我才意识到我把 C 而不是 C++,我的错误
标签: c++ arrays if-statement character