在c ++中使用特殊符号时的“非法案例”

时间:2013-04-04 04:46:22

标签: c++ c switch-statement

当我在c ++中使用特殊字符大小写时,我遇到了一些问题。我尝试使用'{',但它已经结束了,错误。 Visual Studio 2010。 这是我的代码。

for (int i = 0; i < inputString.length(); i++)
{
    switch(inputString[i])
        case '{':
            nowChar = inputString[i];
            nowCaret = i;
            break;
        case '[':
            nowChar = inputString[i];
            nowCaret = i;
            break;
        case '(':
            nowChar = inputString[i];
            nowCaret = i;
            break;
}

如何删除这些错误?我真的不知道它。

3 个答案:

答案 0 :(得分:3)

你需要用大括号打开和结束你的开关。

switch() {
    // ...
}

答案 1 :(得分:1)

你可能刚刚忘记了switch语句的大括号。顺便说一下,在switch语句中使用default会更好。

for (int i = 0; i < inputString.length(); i++)
{
    switch(inputString[i]) {
    case '{':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    case '[':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    case '(':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    default:
        break;
    }
}

答案 2 :(得分:1)

您忘记在案例周围使用{}

switch(inputString[i])
{ //<------------------------------  this
    case '{':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    case '[':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    case '(':
        nowChar = inputString[i];
        nowCaret = i;
        break;
} //<------------------------------- and this

switch块在{strong>多个案例时以{开头。如果它只有一个case,则{}不是强制性的。

switch(i)
     case 0 : 
           // code 
          break; 

此处{}不是强制性的。