【发布时间】:2021-07-31 20:41:46
【问题描述】:
int valid = 0;
while (!valid) {
printf("\nEnter number of characters (1-30)> ");
scanf("%d", & n);
printf("\nInclude numbers (Y/N)> ");
scanf(" %c", & nf);
printf("\nInclude symbols (Y/N)> ");
scanf(" %c", & sf);
//cond1 and cond2 initialized here
if (cond1 && cond2)
valid = 1;
else
printf("Invalid input");
}
我需要为第一次整数扫描实现错误输入检测功能。如果用户输入一个字符而不是一个整数,则跳过第二个 scanf 并直接进入第三个 scanf。如果在 %d 上输入字符,如何阻止这种情况发生?如果用户输入字符而不是数字,我想再次要求输入
【问题讨论】:
-
您还没有说明是要终止程序还是再次请求输入。
-
请重新处理您的问题以包含minimal reproducible example。考虑在您对用户的说明中使用更具体的词,例如 “输入 1-30 位数字”,如果这是您想要的。或者 “输入 1 到 30 个字母字符”,如果这是你想要的。 characters 不明确。整个 ASCII 字符表是 characters。
-
@alex01011 如果用户输入的是字符而不是数字,我想再次请求输入
-
您最后的评论应该是您帖子的一部分,而不是评论。请编辑您的帖子。
-
cond1和cond2在您的代码中创建/初始化/设置在哪里?