【发布时间】:2019-06-16 13:50:21
【问题描述】:
我正在读取标准输入。用户被提升为输入一位数字或输入三位。 这个问题哪个函数好?
我试过了
int in[3] = {-1, -1, -1};
scanf("%d %d %d", &in[0], &in[1], &in[2]);
printf("%d, %d, %d\n", in[0], in[1], in[2]);
这适用于三位数字,但如果只输入一位,则效果不佳。
我想拥有例如输入为“17”或“0 1 9” 那么输出应该是例如
int amount = 1
int digits[3] = {17, -1, -1}
或
int amount = 3
int digits[3] = {0, 1, 9}
【问题讨论】:
-
这很好用不,它没有。你创建一个指向 char 的指针数组,然后向
scanf声明你正在给它指向int的指针。为什么?你的编译器不会因为你这样做而尖叫吗?至于问题:scanf 返回它获得了多少项目,因此您可以为未读入的项目设置默认值。 -
@SamiKuhmonen 是的,你是对的。我粘贴了错误的版本。
标签: c inputstream user-input variable-length