以下是代码:
for (int i = 0; i < THE_WORD.length(); ++i)
我收到以下错误:'&lt;':签名/无符号不匹配
THE_WORD被初始化为:
const string THE_WORD;
我正在尝试制作一个“刽子手”程序(现在我自己学习cpp),这是for循环的一部分,它循环播放器应该猜测的单词,并从星号中改变字符到位到猜测的信。
如果我需要发布更多代码以便回答我的问题,请告诉我。
答案 0 :(得分:6)
因为length()
调用返回的类型是size_t,通常是typedef
unsigned int
。这就是为什么签名整数(int
和size_t
类型之间的签名/无符号不匹配,这是std::string::length()
返回的值。
要使其正确,请考虑将i
变量的类型更改为size_t
或任何其他无符号类型,但最好使类型相同(size_t
和{{1} }):
size_t