1

我想根据用户输入的值的数量进行输入,而不是期望值的确切数量。

在我的程序中,我希望用户输入整数,但问题是我希望允许用户输入一个或两个空格分隔的整数。

因此,如果用户输入两个空格分隔的整数,它们应该存储在变量 a 和 b 中,如果他在按 enter 之前只输入一个数字,那么它应该存储在 a 中,程序应该继续进行而不等待第二个数字.

最好的方法是什么?

4

4 回答 4

2

Try getting the whole input as a character array, than parse it as you wish.

于 2012-06-12T10:25:34.983 回答
2

Think about how you would do it yourself then turn that into code:

  • Get a line from the input
  • Tokenise it by whitespace
  • Check that the tokens are integers can convert them
于 2012-06-12T10:26:11.703 回答
2

看起来你可以很容易地做到这一点scanf

int a,b;
char c[1];
int n = scanf("%d%0[ ]%d",&a,&c,&b);

只有用空格分隔它才会读取b,因此它将在换行处停止。

n将包含读取的字段数(包括分隔符)。

我不确定它是否完全有效或跨平台。在将其放入任何严肃的程序之前,您应该检查文档。

于 2012-06-12T10:46:18.063 回答
1

You should read the whole line as a character string using fgets() and then parse into the integer(s) you need.

于 2012-06-12T10:25:36.420 回答