错误:数字常量之前应为“)”
Posted
技术标签:
【中文标题】错误:数字常量之前应为“)”【英文标题】:error: expected ')' before numeric constant 【发布时间】:2013-09-07 00:36:07 【问题描述】:错误:数字常量前应为')'
我的代码似乎是正确的,但编译器始终向我发送错误消息。尝试编辑和编译一个小时后,我仍然找不到错误。帮助? 这是我的代码:
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++;
帮助?
【问题讨论】:
从编译器复制粘贴错误信息 【参考方案1】:除非STUDENTS
是字符串文字(不是因为您将其与上面的int 进行比较),否则您应该使用格式说明符%d
将其包含在字符串中,如下所示:
printf("ERROR: Invalid Input. Input should be from 1-%d.\n", STUDENTS);
【讨论】:
【参考方案2】:我认为你的错误陈述是错误的。 STUDENTS
应该是一个编译时间常数,因为您也在 if
条件下使用它。所以,试试 -
printf("ERROR: Invalid Input. Input should be from 1-%d.\n",STUDENTS);
【讨论】:
【参考方案3】:在这一行:
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);
【讨论】:
【参考方案4】: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 documentation
【讨论】:
你确定吗?以上是关于错误:数字常量之前应为“)”的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio,错误:在数组声明中使用 #define 常量时,应为“]”