【发布时间】:2021-10-22 11:17:33
【问题描述】:
我正在尝试运行一个程序,用户只能输入 1 或 2。如果用户输入任何其他数字或字母,它应该提示用户再次输入输入。我已经尝试了以下代码,如果用户输入一个不是 1 或 2 的整数,它就可以工作,但是如果输入任何字母,整个程序都会变得混乱。我试图验证
if == 0 但也不起作用。有人知道吗?
int getUserInput(){ printf("1: You have chosen 1.\n"); printf("2: You have chosen 2.\n\n"); printf("Enter an option: "); scanf("%d", &userSel); if(userSel!= 1 && userSel!= 2){ printf("You have entered an invalid input. Please try again.\n"); getUserInput(); } else{ printf("Enter a number: "); scanf("%d", &userNo); } printf("userSelection: %d\n", userSel); printf("1userNumber: %d\n", userNo); return 0; }
【问题讨论】:
-
而不是
scanf(any_format, ...),使用fgets()将用户输入的行 读入字符串。然后处理那个 string.
标签: c if-statement