C语言中的切换菜单
我正在尝试使用此C程序中的菜单,但我不断收到一个错误:C语言中的切换菜单,c,switch-statement,C,Switch Statement,我正在尝试使用此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(); v
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");
}
错误是:
1.不正确的while大括号
2.使用while(用户输入)代替while(选择)
3.大小写和数字之间没有空格更改:
case1:
到
等等
此外,switch语句需要一个起始{
和一个结束}
1)while中的大括号是没有意义的(结束前的大括号是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;
}
}
switch(sel) {
case
是一个关键字,这意味着您可能希望它周围有空格
case 1:
case 2:
...
}
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;
}
}
}
什么是案例1
?我唯一的猜测是,您的意思是与1进行比较,在这种情况下,您必须在关键字case
和实际case值之间留出一个空格。以下是您的开关盒的外观:
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;
}
}
}
}
除了它应该是案例X
而不是案例X
之外,您已经用{
而不是}
结束了开关
块(就在案例0:
的中断之后;
)//在(sel){sel=userInput();开关(sel){case 1:printList();break;case 2:editStud();break;case 3:delStud();break;case 4:addStud();break;case 0:break;default:printf(“这不是有效的选择!\n”);}}不要将代码放在注释中,它绝对不可读。编辑你的问题并把它放在那里。
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;
}
}
}
switch (sel) {
case 1:
printList();
break;
case 2:
editStud();
break;
case 3:
delStud();
break;
case 4:
addStud();
break;
case 0:
break;