我收到错误"预期';'在'!'令牌"之前

时间:2015-02-09 14:43:26

标签: c menu

int menu () {
    char choice [5];
    int i;
    int c;

    printf("Welcome to your own personal tamaguchi!");

    printf("\n 1.Name your tamaguchi.\n");
    printf("\n 2.Check health and age.\n");
    printf("\n 3.Feed tamaguchi.\n");
    printf("\n 4. Exercise with tamaguchi.\n");
    printf("Let tamaguchi sleep.n");
    printf("\n 5. Close program.\n");

    printf("Choose action: ");
    scanf("%s", choice);
    printf("\n");

     for (i=0; choice[i]! = '\0'; i++){
         if(!isdigit(choice[i]))
            return -1;
    }

    c = atoi(choice);
    return c;
}

他们说问题出在!所在的地方choice[i]!='\0'

我已经包含了stdio,string,time和stdlib。 我不知道自己做错了什么,如果你能看到错误请告诉我?

感谢。

1 个答案:

答案 0 :(得分:3)

您需要更改

for (i=0; choice[i]! = '\0'; i++){

for (i=0; choice[i] != '\0'; i++){
                    ^
                    |  //notice here

此处的运算符不等于 !=。这是一个单一的操作员。

如果你写的是! = [中间有空格],那就会成为两个独立的运算符,Logical NOT和赋值,从而产生错误。