我的项目一直出现这个错误,我无法弄明白!请帮忙!
错误C2143:语法错误:'常量'之前缺少')'
该行是:
while (selection == ('a','b','c', 'd', 'e', 'f', 'g', 'h', 'i','A','B' 'C', 'D', 'E', 'F', 'G', 'H', 'I');
我也知道有一种更容易的方式来写出那条线,但我不知道我怎么做。我是初学者,所以你们中的任何人都可以为我编辑这行!
答案 0 :(得分:6)
你有多少个开括号?
你有多少个封闭的括号?
这些号码是一样的吗?如果没有,哪里缺少一个?
此外,语法a == (b,c,d)
并非a == b || a == c || a == d
的简写,就像您似乎想的那样。由于comma operator的工作方式,它实际上相当于a == d
。
要完全明确,你真正想要的是:
while (selection == 'a' || selection == 'b' ||
selection == 'c' || selection == 'd' ||
selection == 'e' || selection == 'f' ||
selection == 'g' || selection == 'h' ||
selection == 'i' || selection == 'A' ||
selection == 'B' || selection == 'C' ||
selection == 'D' || selection == 'E' ||
selection == 'F' || selection == 'G' ||
selection == 'H' || selection == 'I')
{
/* Do stuff */
}
或者,为了更加明智,你可以利用字母在ASCII表中按字母顺序排列的事实,并写下
while (tolower(selection) >= 'a' && tolower(selection) <= 'i')
{
/* Do stuff */
}
这需要在<ctype.h>
函数中包含tolower
。
答案 1 :(得分:1)
鉴于您对Tyler的帖子的评论,看起来您真正想要的是:
while ((selection >= 'a' && selection <= 'i') || (selection >= 'A' && selection <= 'I'))
{
// loop
}
可以将字符比较为数字(因为它们在CPU中是数字),这意味着您可以使用< > <= >=
运算符检查一系列字符。 / p>