C言語で配列をscanfする方法とエラーの解決方法


C言語では、scanf関数を使用してユーザーからの入力を受け取ることができます。配列をscanfで受け取る場合は、以下のように書きます:

#include <stdio.h>
int main() {
    int array[5];

    printf("5つの整数を入力してください:\n");

    for (int i = 0; i < 5; i++) {
        scanf("%d", &array[i]);
    }

    printf("入力された値は次の通りです:\n");

    for (int i = 0; i < 5; i++) {
        printf("%d\n", array[i]);
    }

    return 0;
}

上記の例では、5つの整数を入力し、それらの値を配列に格納してから出力しています。

配列をscanfで受け取る際によく発生するエラーの一つは、配列のサイズを超えて入力しようとするというものです。例えば、上記のコードで配列のサイズを5と指定している場合に、6つ以上の値を入力するとエラーが発生します。このエラーを回避するためには、適切なサイズの配列を宣言し、入力回数を制限する必要があります。

また、scanf関数自体にもエラー処理を追加することが重要です。scanf関数は入力形式が期待通りでない場合や、エラーが発生した場合に-1を返します。これを利用して、正常に入力が行われたかどうかを確認することができます。

以下に、scanf関数のエラーチェックの例を示します:

#include <stdio.h>
int main() {
    int num;

    printf("整数を入力してください:\n");

    if (scanf("%d", &num) != 1) {
        printf("エラー: 正しい形式で整数を入力してください。\n");
        return 1;
    }

    printf("入力された値は %d です。\n", num);

    return 0;
}

上記の例では、scanf関数が1を返さない場合にエラーメッセージを表示しています。

以上がC言語で配列をscanfする方法とエラーの解決方法の一例です。応用的な使い方や他のデータ型についても同様の手順で扱うことができます。