我试图在这个C程序中使用菜单,但我一直收到错误:
3.c: In function 'main':
q3.c:99:3: error: expected declaration or statement at end of input
}
^
q3.c:99:3: error: expected declaration or statement at end of input
代码
#include <stdio.h>
int userInput();
void printList();
void editStud();
void delStud();
void addStud();
struct studentRec
{
char name[25];
char init[25];
char pNu[25];
int studNum;
float bBalance;
};
int main()
{
//no constants
struct studentRec students;
FILE *fp,*fw,*ft;
int sel = 1; //select number for menu
while(userInput)
{
sel = userInput();
switch(sel)
case1:
printList();
break;
case2:
editStud();
break;
case3:
delStud();
break;
case4:
addStud();
break;
case0:
break;
{
}
int userInput()
{
int choice;
printf("===========================\n");
printf("(1). View all students\n");
printf("(2). Edit student details\n");
printf("(3). Delete student\n");
printf("(4). Add new student\n");
printf("(0). Exit\n");
printf("===========================\n\n");
printf("Enter your choice Please\n");
scanf("%d", &choice);
return choice;
}
void printList()
{
printf("*Prints list*\n");
}
void editStud()
{
printf("*edits entry*\n");
}
void delStud()
{
printf("*deletes entry*\n");
}
void addStud()
{
printf("*adds entry\n");
}
Thanx对所有回复,我打算做什么:
.
.
.
int userInput();
void printList();
void editStud();
void delStud();
void addStud();
.
.
.
int sel = 1; //select number for menu
while(sel)
{
sel = userInput();
switch(sel)
{
case 1:
printList();
break;
case 2:
editStud();
break;
case 3:
delStud();
break;
case 4:
addStud();
break;
case 0:
break;
default:
printf("That is not a valid selection!\n");
}
}
.
.
.
错误是: 1.括号不正确 2.使用while(userInput)而不是while(sel) 3.案例与数字之间没有空格
答案 0 :(得分:1)
什么是case1
?我唯一的猜测是你要与1进行比较,在这种情况下你必须在关键字case
和实际案例值之间留一个空格。以下是您的开关案例的样子:
switch (sel) { case 1: printList(); break; case 2: editStud(); break; case 3: delStud(); break; case 4: addStud(); break; case 0: break;
}
答案 1 :(得分:0)
变化:
case1:
到
case 1:
等
switch语句也需要一个起始{
和一个结尾}
。
答案 2 :(得分:0)
1)你while
内的大括号是没有意义的(在大括号结束之前的大括号)
2)你的switch语句没有括号。
3)此外,case
关键字和切换输入之间应该有一个空格
正确的方法是
while(userInput){
sel = userInput();
switch(sel){
case 1:
printList();
break;
case 2:
editStud();
break;
case 3:
delStud();
break;
case 4:
addStud();
break;
case 0:
break;
}
}
答案 3 :(得分:0)
在Switch语句之后,您需要一个开括号。
switch(sel) {
case
是一个关键字,这意味着你可能想要它周围的空白。
case 1:
case 2:
...
你有一个开放的支撑,你可能需要一个紧支撑。开括号的数量应与闭括号的数量相匹配。
}
你的while语句很奇怪。你可能想用那个做其他事......
所以,main()
实际上应该是这样的:
int main()
{
struct studentRec students;
FILE *fp,*fw,*ft;
int sel = 1; //select number for menu
while(true)
{
sel = userInput();
switch(sel) {
case 1:
printList();
break;
case 2:
editStud();
break;
case 3:
delStud();
break;
case 4:
addStud();
break;
case 0:
break;
}
}
}