使用scanf()获取多个值

时间:2009-09-11 18:19:01

标签: c scanf

我正在使用scanf()从用户那里获取一组int。但我希望用户一次提供所有4个整数而不是4个不同的提示。我知道我可以通过这样做获得一个价值:

scanf( "%i", &minx);

但我希望用户能够做到这样的事情:

Enter Four Ints: 123 234 345 456

是否可以这样做?

8 个答案:

答案 0 :(得分:44)

您可以通过一次通话完成此操作,如下所示:

scanf( "%i %i %i %i", &minx, &maxx, &miny, &maxy);

答案 1 :(得分:9)

int minx, miny, maxx,maxy;
do {
   printf("enter four integers: ");
} while (scanf("%d %d %d %d", &minx, &miny, &maxx, &maxy)!=4);

循环只是为了证明scanf返回成功读取的字段数(或EOF)。

答案 2 :(得分:1)

int a,b,c,d;
if(scanf("%d %d %d %d",&a,&b,&c,&d) == 4) {
   //read the 4 integers
} else {
   puts("Error. Please supply 4 integers");
}

答案 3 :(得分:1)

只需添加,我们也可以使用数组:

int i, array[4];
printf("Enter Four Ints: ");
for(i=0; i<4; i++) {
    scanf("%d", &array[i]);
}

答案 4 :(得分:0)

可以这样做,但是用户必须用空格分隔数字:

#include "stdio.h"

int main()
{
    int minx, x, y, z;

    printf("Enter four ints: ");
    scanf( "%i %i %i %i", &minx, &x, &y, &z);

    printf("You wrote: %i %i %i %i", minx, x, y, z);
}

答案 5 :(得分:0)

这个问题很老了,但如果有人可以通过现实生活中的例子来帮助解决这个问题。

对于单一输入数据 -

int number;
printf("Please enter number : ");
scanf("%d", &number);

对于一行中的多个输入数据 -

int number1, number2;
printf("Please enter numbers one by one : ");
scanf("%d %d", &number1, &number2);
  • %d %d 用于十进制格式。您可以根据需要使用适合您的数据类型的格式,只需一个 space
  • &number1, &number2 - 在变量名之间使用 comma

如果需要更多真实示例,请查看此实际示例 - https://devsenv.com/tutorials/how-to-take-input-and-output-in-c-programming

希望,这会对某人有所帮助。

答案 6 :(得分:-1)

可以使用scanf()

获取多个值
int r,m,v,i,e,k;

scanf("%d%d%d%d%d%d",&r,&m,&v,&i,&e,&k);

答案 7 :(得分:-1)

int a[1000] ;
for(int i = 0 ; i <= 3 , i++)
scanf("%d" , &a[i]) ;