C言語での整数の入力とエラーハンドリング


まず、C言語ではscanf()関数を使用してユーザーからの入力を受け取ることができます。整数の場合は%dフォーマット指定子を使用します。以下に、ユーザーから整数を受け取るための基本的なコード例を示します。

#include <stdio.h>
int main() {
    int number;
    printf("整数を入力してください: ");
    scanf("%d", &number);
    printf("入力された整数: %d\n", number);
    return 0;
}

上記のコードでは、ユーザーに対して「整数を入力してください」というメッセージを表示し、scanf()関数を使用して整数を受け取ります。受け取った整数はnumber変数に格納され、その後に表示されます。

次に、ユーザーが負の整数を入力した場合にエラーチェックを行い、適切な処理を行う方法について説明します。以下に、エラーチェックを含んだコード例を示します。

#include <stdio.h>
int main() {
    int number;
    printf("整数を入力してください: ");
    scanf("%d", &number);
    if (number < 0) {
        printf("負の整数が入力されました。正の整数を入力してください。\n");
        return 1;  // エラーコード1を返してプログラムを終了
    }
    printf("入力された整数: %d\n", number);
    return 0;
}

上記のコードでは、if文を使用してnumberが負の場合にエラーメッセージを表示し、プログラムを終了させています。エラーメッセージの後にreturn 1;があるため、エラーコード1を返してプログラムを終了させることができます。

さらに、ユーザーが負の整数を入力した場合に再入力を求めるようなエラーハンドリングを行う方法も考えられます。以下に、そのようなコード例を示します。

#include <stdio.h>
int main() {
    int number;
    do {
        printf("正の整数を入力してください: ");
        scanf("%d", &number);
        if (number < 0) {
            printf("負の整数が入力されました。もう一度入力してください。\n");
        }
    } while (number < 0);
    printf("入力された整数: %d\n", number);
    return 0;
}

上記のコードでは、do-whileループを使用して、ユーザーが負の整数を入力した場合に再度入力を促す動作を繰り返します。numberが負の場合には、エラーメッセージを表示し、もう一度入力を求めます。正の整数が入力されるまでループが続きます。

これらのコード例を参考にしながら、C言語で整数の入力とエラーハンドリングを行うプログラムを作成することができます。適切なエラーチェックとハンドリングを実装することで、ユーザーが正しい入力を行うように促すことができます。