4

错误:数字常量前应为 ')'

我的代码似乎是正确的,但编译器始终向我发送一条错误消息。尝试编辑和编译一个小时后,我仍然找不到错误。帮助?这是我的代码:

void get_record()
{

    char record_num[LEN];
    int x, y;
    printf("Enter the record number of the Student Record to modify: ");
    fgets(record_num, LEN, stdin);
    {
        x = atoi(record_num);
        if (x>STUDENTS||x<=0)
        {
            printf("ERROR: Invalid Input. Input should be from 1-"STUDENTS".\n");
            printf("Enter the record number of the Student Record to modify: ");
            get_record();
        }
    }
    output();
    _z= x;
    i= (x-1);
    printf(LEV2"%3d     %25s    %9s         ", x, name[i], studno[i]);
        for (y=0; y<EXAMS; y++)
            {
            printf("%5s   ", exam_z[y]);
            y++;
            }
}

帮助?

4

4 回答 4

2

除非STUDENTS是字符串文字(不是因为您将其与上面的 int 进行比较),否则您应该使用格式说明符将其包含在字符串中%d,如下所示:

printf("ERROR: Invalid Input. Input should be from 1-%d.\n", STUDENTS);
于 2013-09-07T00:40:26.897 回答
1

我认为你的错误陈述是错误的。STUDENTS应该是一个编译时间常数,因为您也在if条件下使用它。所以,试试 -

printf("ERROR: Invalid Input. Input should be from 1-%d.\n",STUDENTS);
于 2013-09-07T00:40:29.660 回答
0

在这一行:

printf("ERROR: Invalid Input. Input should be from 1-"STUDENTS".\n");

你使用“”是错误的,如果你想把“放在字符串中你每次都做\”。

现在应该没问题:

printf("ERROR: Invalid Input. Input should be from 1-\"STUDENTS\".\n");

或者,如果您想打印 STUDENTS 的实际值:

printf("ERROR: Invalid Input. Input should be from 1-%d.\n",STUDENTS);
于 2013-09-07T00:39:07.997 回答
0
printf("ERROR: Invalid Input. Input should be from 1-"STUDENTS".\n");

应该

printf("ERROR: Invalid Input. Input should be from 1-"+STUDENTS+".\n");

相邻的字符串需要与+运算符连接。

编辑

抱歉,我习惯了 Java/C++,这在 C 中不起作用。最好按预期使用 printf:

printf("ERROR: Invalid Input. Input should be from 1-%d.\n",STUDENTS);

请参阅:printf 文档

于 2013-09-07T00:40:50.903 回答