我正在从标准输入文件中读取Integer,并且必须在用户停止输入整数时停止。怎么做到这一点?

时间:2012-08-09 13:01:31

标签: c stdin

我正在写一个算法,我最多输入10个输入。允许用户输入任意数量的输入。问题是我无法告诉用户在最后输入时你必须输入-1或其他任何东西。我需要找到一种机制来做到这一点。有人对此有一些建议吗?

2 个答案:

答案 0 :(得分:1)

scanf()函数返回成功写入的对象数。 使用该值!

int n, a[10];
n = scanf("%d%d%d%d%d%d%d%d%d%d", a+0, a+1, a+2, a+3, a+4, a+5, a+6, a+7, a+8, a+9);
printf("You entered %d values\n", n);

请注意,对于特定的片段,用户必须用一些错误值(如“42 13 -100 boo”)或EOF(“42 13 -100 CTRL + D CTRL + D”)表示输入结束。只需输入ENTER即可生效:"%d"转换规范会忽略它们。

答案 1 :(得分:0)

伪代码:

get count limit
saturate to 10

start loop (for count-limit times)
scanf
put value to array
end loop

或:

start loop 
scanf
put value to array
increment counter
check if counter==10 or input is blank then quit
end loop