如何在不事先知道将输入多少值的情况下设计输入?

时间:2012-06-12 10:22:01

标签: c

我想根据用户输入的值输入,而不需要精确数量的值。

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

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

最好的方法是什么?

4 个答案:

答案 0 :(得分:2)

尝试将整个输入作为字符数组,而不是根据需要进行解析。

答案 1 :(得分:2)

考虑一下你自己如何做,然后把它变成代码:

  • 从输入中获取一行
  • 用空格标记它
  • 检查令牌是否为整数可以转换它们

答案 2 :(得分:2)

看起来您可以使用scanf轻松完成:

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

只有当它被空格分隔时才会显示b,因此它会在新行停止。

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

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

答案 3 :(得分:1)

您应该使用fgets()将整行读作字符串,然后解析为您需要的整数。