【C言語】複数の変数に1つのscanf関数で入力する方法

この記事では、C言語において複数の変数に1つのscanf関数で入力を行う方法について解説します。

目次から探す

複数の変数に1つのscanf関数で入力する方法

プログラミングにおいて、複数の変数に対してユーザーからの入力を受け取る必要がある場合、通常は変数ごとにscanf関数を使用して入力を行います。

しかし、C言語では1つのscanf関数で複数の変数に入力を受け取る方法もあります。

以下では、その方法について解説します。

方法1: スペース区切りで入力する方法

まず、最も簡単な方法として、スペース区切りで入力を行う方法があります。

例えば、整数型の変数aとbに対して、スペース区切りで2つの値を入力したい場合、以下のようなコードを記述します。

#include <stdio.h>
int main() {
    int a, b;
    printf("2つの整数をスペース区切りで入力してください: ");
    scanf("%d %d", &a, &b);
    printf("入力された値: a = %d, b = %d\n", a, b);
    return 0;
}

上記のコードでは、scanf("%d %d", &a, &b);の部分で、2つの整数をスペース区切りで入力しています。

%dは整数型のフォーマット指定子であり、&a&b変数aとbのアドレスを指定しています。

方法2: 改行区切りで入力する方法

次に、改行区切りで入力を行う方法を紹介します。

この方法では、変数ごとに改行して入力を行います。

例えば、整数型の変数xとyに対して、改行区切りで2つの値を入力したい場合、以下のようなコードを記述します。

#include <stdio.h>
int main() {
    int x, y;
    printf("2つの整数を改行区切りで入力してください:\n");
    scanf("%d", &x);
    scanf("%d", &y);
    printf("入力された値: x = %d, y = %d\n", x, y);
    return 0;
}

上記のコードでは、scanf("%d", &x);scanf("%d", &y);の部分で、それぞれの変数に対して改行区切りで入力を行っています。

方法3: フォーマット指定子を使って入力する方法

最後に、フォーマット指定子を使って入力を行う方法を紹介します。

この方法では、変数ごとにフォーマット指定子を指定して入力を行います。

例えば、整数型の変数mとnに対して、mには10進数、nには16進数で入力を行いたい場合、以下のようなコードを記述します。

#include <stdio.h>
int main() {
    int m, n;
    printf("10進数と16進数を入力してください: ");
    scanf("%d %x", &m, &n);
    printf("入力された値: m = %d, n = %d\n", m, n);
    return 0;
}

上記のコードでは、%dは10進数のフォーマット指定子、%xは16進数のフォーマット指定子です。

それぞれの変数に対して適切なフォーマット指定子を指定して入力を行います。

以上が、複数の変数に1つのscanf関数で入力を行う方法の解説です。

適切な方法を選択して、効率的な入力処理を行いましょう。

入力値が予期しない形式であった場合、予期せぬ結果が生じる可能性があります。

エラーチェックを適切に行い、安全なプログラムを作成しましょう。

目次から探す