如何防止在 C 中输入比要求更多的输入? [复制]
Posted
技术标签:
【中文标题】如何防止在 C 中输入比要求更多的输入? [复制]【英文标题】:How to prevent entering more input than required in C? [duplicate] 【发布时间】:2021-10-20 21:50:30 【问题描述】:我希望用户只输入两个整数,并且不超过两个。用户应输入两个用空格分隔的整数。所以,例如:
-
有效输入为:1 2
输入无效:1 2 3
#include<stdio.h>
int main()
int a;
int b;
printf("Enter input:\n");
int numbers = scanf("%d %d", &a, &b);
if(numbers != 2)
printf("Invalid input.\n");
else printf("First: %d Second: %d\n", a, b);
return 0;
如果我输入超过 2 个整数,程序会接受前 2 个整数并忽略第三个。在这种情况下,我想打印一个错误,但程序仍然结束。 所以我的问题是,我应该怎么做才能满足我的需求?
谢谢。
【问题讨论】:
【参考方案1】:您的问题是scanf
正在做它应该做的事情。用户输入了三个号码,但scanf
只消费了其中两个。如果您使用scanf
读取另一个号码,则会消耗第三个号码。
您可能应该使用fgets 消耗整个行 输入,然后使用sscanf 读出这两个数字,然后如果找到这两个数字,您可以检查更多验证您的输入。
【讨论】:
这里有一个demo 来展示它的外观。以上是关于如何防止在 C 中输入比要求更多的输入? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
程序在python中运行时如何防止用户输入控制台? [复制]