我想根据用户输入的值的数量进行输入,而不是期望值的确切数量。
在我的程序中,我希望用户输入整数,但问题是我希望允许用户输入一个或两个空格分隔的整数。
因此,如果用户输入两个空格分隔的整数,它们应该存储在变量 a 和 b 中,如果他在按 enter 之前只输入一个数字,那么它应该存储在 a 中,程序应该继续进行而不等待第二个数字.
最好的方法是什么?
我想根据用户输入的值的数量进行输入,而不是期望值的确切数量。
在我的程序中,我希望用户输入整数,但问题是我希望允许用户输入一个或两个空格分隔的整数。
因此,如果用户输入两个空格分隔的整数,它们应该存储在变量 a 和 b 中,如果他在按 enter 之前只输入一个数字,那么它应该存储在 a 中,程序应该继续进行而不等待第二个数字.
最好的方法是什么?
Try getting the whole input as a character array, than parse it as you wish.
Think about how you would do it yourself then turn that into code:
看起来你可以很容易地做到这一点scanf
:
int a,b;
char c[1];
int n = scanf("%d%0[ ]%d",&a,&c,&b);
只有用空格分隔它才会读取b
,因此它将在换行处停止。
n
将包含读取的字段数(包括分隔符)。
我不确定它是否完全有效或跨平台。在将其放入任何严肃的程序之前,您应该检查文档。
You should read the whole line as a character string using fgets()
and then parse into the integer(s) you need.