web-dev-qa-db-ja.com

scanf()で複数の値を取得する

Scanf()を使用して、ユーザーからintのセットを取得しています。しかし、4つの異なるプロンプトではなく、4つのintを一度にすべて提供するようユーザーにお願いします。私は次のことで1つの値を得ることができることを知っています:

scanf( "%i", &minx);

しかし、ユーザーに次のようなことができるようにしたいと思います。

Enter Four Ints: 123 234 345 456

これを行うことは可能ですか?

28
Josh Curren

次のように、1回の呼び出しでこれを行うことができます。

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

はい。

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

ループは、scanfが正常に読み取られたフィールドの数(またはEOF)を返すことを示すためのものです。

9
Jonathan Graehl
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");
}
1
nos

これを行うことはできますが、ユーザーはスペースで数字を区切る必要があります。

#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);
}
0
l3dx