int DisplaySchedule()
{
int nDisplaySchedule_Choice;
hệ thống ("cls");
printf("------ LỊCH HIỂN THỊ -----\n");
printf("Chọn ga khởi hành\n\t");
printf("[1] San Pedro\n\t");
printf("[2] Santa Rosa\n\t");
printf("[3] Calamba\n\n\t");
printf("[9] Quay lại\n\t");
printf("[0] Thoát\n\n");
printf("Lựa chọn: ");
scanf("%d", &nDisplaySchedule_Choice);
printf("\n");
chuyển đổi (nDisplaySchedule_Choice) {
trường hợp 1: SanPedro();
trường hợp 2: SantaRosa();
trường hợp 3: Calamba();
trường hợp 9: OpenScreen();
trường hợp 0: printf("Summary()");
default:
printf("LỖI. NHẬP MỘT TRẢ LỜI HỢP LỆ.\n\n");
DisplaySchedule();
phá vỡ;
}
return;
}
Tôi có mã này, khi tôi nhập một chữ cái, thay vì in ra thông báo lỗi, nó sẽ in ra trường hợp 0:
. Có cách nào để làm trường hợp 0:
chỉ khi và chỉ nếu tôi quét
Nó chỉ hoạt động khi "0" được nhập vào câu lệnh?
bạn cóhành vi không xác địnhĐây rồi.
quét
, trong khi quét int (%d
) không thành công vì bạn đã nhập một ký tự - do Trận đấu không thành công. Vì vậy sẽ không có gì được đọc cả nDisplaySchedule_Choice
.
由于 nDisplaySchedule_Choice
Ban đầu chưa được khởi tạo, nó xảy ra có 0
, vậy hãy đi đến case 0
.
Giải pháp là tiếp tục sử dụng nDisplaySchedule_Choice
Kiểm tra trước quét
Giá trị trả về. quét
Trả về số lượng mục được quét thành công.
Tôi là một lập trình viên xuất sắc, rất giỏi!