错误C2143:语法错误:在'常量之前'缺少')'

use*_*217 0 visual-c++

我一直在我的项目上得到这个错误,我无法弄明白!请帮忙!

错误C2143:语法错误:'常量'之前缺少')'

这条线是:

while (selection == ('a','b','c', 'd', 'e', 'f', 'g', 'h', 'i','A','B' 'C', 'D', 'E', 'F', 'G', 'H', 'I');
Run Code Online (Sandbox Code Playgroud)

我也知道有一种更简单的方式来写出那条线,但我不知道我怎么做.我是初学者,所以你们中的任何人都可以为我编辑这行!

Tyl*_*nry 6

你有几个开括号?

你有几个封闭的括号?

这些数字是一样的吗?如果没有,哪里缺少一个?

此外,语法a == (b,c,d)并不a == b || a == c || a == d像你似乎想象的那样简写.它实际上相当于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 */
}
Run Code Online (Sandbox Code Playgroud)

或者,为了更加明智,您可以利用字母在ASCII表中按字母顺序排列的事实,并写入

while (tolower(selection) >= 'a' && tolower(selection) <= 'i')
{
   /* Do stuff */
}
Run Code Online (Sandbox Code Playgroud)

这需要包容<ctype.h>tolower功能.