我不熟悉C编程,正在尝试为我的作业创建预订系统。我已经多次遇到此错误,却不知道如何解决。
我尝试了Visual Studio建议的将scanf更改为scanf_s的方法。但是,这也不起作用。至于功能未明错误,我不知道在哪里修复。
#include <stdio.h>
#include <stdlib.h>
char MainMenu()
{
int sel;
sel = 1, 2, 3, 4;
printf("WELCOME TO WISDOM COLLEGE HOTEL\n\n");
printf("Please choose your desired service:\n");
printf("1.Booking\n");
printf("2.Check Room Availability\n");
printf("3.Payment detail\n");
printf("4.Exit\n");
if (scanf_s("%d",&sel) == 1) {
return Booking();
}
else if (scanf_s("%d", &sel) == 2) {
return Room();
}
else if (scanf_s("%d", &sel) == 3) {
return Payment();
}
}
char Booking()
{
int selBook;
printf("\t\t\t\t BOOKING\n\n");
printf("Book base on:\n");
printf("1.Gender\n");
printf("2.Room Type\n");
printf("3.Back to Main Menu\n");
scanf_s("%d", &selBook);
printf("\n%d", selBook);
}
char Room()
{
int selRoom;
printf("\t\t\t ROOM AVAILABILITY\n\n");
printf("Check room availability by:\n");
printf("1.Type\n");
printf("2.Gender\n");
if (scanf_s("%d", &selRoom) == 1) {
return 0;
}
}
char main()
{
char MainMenu;
char Booking;
char Payment;
char Room;
return MainMenu;
}
我希望程序能够运行,因此MainMenu首先运行,然后根据用户输入,它将从Booking到Exit。
答案 0 :(得分:0)
您应该首先获取输入,然后检查它是什么。
scanf_s不会返回您作为输入输入的值,它的返回值是成功转换和分配的字段数。 因此,您应该首先获取输入并将其保存在内存中,然后检查其值。
此外,我不知道您试图使用MainMenu的返回值是char main()的返回值(我认为使用char main并不常见-使用 int 或 void 主要代替):
#include <stdio.h>
#include <stdlib.h>
char MainMenu();
char Booking();
char Payment();
char Room();
char MainMenu()
{
int sel;
sel = 1, 2, 3, 4;
printf("WELCOME TO WISDOM COLLEGE HOTEL\n\n");
printf("Please choose your desired service:\n");
printf("1.Booking\n");
printf("2.Check Room Availability\n");
printf("3.Payment detail\n");
printf("4.Exit\n");
scanf_s("%d",&sel)
if (sel == 1) {
return Booking();
}
else if (sel == 2) {
return Room();
}
else if (sel == 3) {
return Payment();
}
}
char Booking()
{
int selBook;
printf("\t\t\t\t BOOKING\n\n");
printf("Book base on:\n");
printf("1.Gender\n");
printf("2.Room Type\n");
printf("3.Back to Main Menu\n");
scanf_s("%d", &selBook);
printf("\n%d", selBook);
}
char Room()
{
int selRoom;
printf("\t\t\t ROOM AVAILABILITY\n\n");
printf("Check room availability by:\n");
printf("1.Type\n");
printf("2.Gender\n");
if (scanf_s("%d", &selRoom) == 1) {
return 0;
}
}
int main()
{
MainMenu();
return 0;
}