我想根据用户输入的值输入,而不需要精确数量的值。
在我的程序中,我希望用户输入整数,但问题是我想让用户输入一个或两个空格分隔的整数。
因此,如果用户输入两个空格分隔的整数,它们应该存储在变量a和b中,如果他在输入之前只输入一个数字,那么它应该存储在a中,程序应该继续进行而无需等待第二个数字。
最好的方法是什么?
答案 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()
将整行读作字符串,然后解析为您需要的整数。