入力バリデーション
CoddyのCジャーニー「Fundamentals」セクションの一部 — レッスン 35/63。
ユーザーからの入力を受け取るとき、プログラムで使用する前に、その入力が有効であることを検証することが重要です。
整数の入力バリデーションを行うには、scanfの戻り値を確認します:
int number;
int result = scanf("%d", &number);scanf 関数は、正常に読み取られた項目の数を返します:
if (result == 1) {
// 入力は正常に読み取られました
printf("Valid input: %d\n", number);
} else {
// 入力は無効でした
printf("Invalid input!\n");
}範囲の検証には、入力を読み取った後に条件文を使用します:
if (number >= 1 && number <= 100) {
printf("Number is within valid range (1-100)\n");
} else {
printf("Number is outside valid range!\n");
}チャレンジ
簡単ユーザーから整数を読み取り、2つの方法で検証するプログラムを作成してください:
- 入力が実際に整数であるかどうかを確認する(scanf の戻り値を使用)
- 整数が 10 から 50(両端を含む)の間にあるかどうかを確認する
プログラムは以下を出力する必要があります:
- 入力が 10 から 50 の間の有効な整数である場合は "Valid input!"。
- 入力が整数ではない場合は "Invalid input type!"。
- 入力は整数だが 10 から 50 の間ではない場合は "Out of range!"。
チートシート
整数の入力を検証するには、scanfの戻り値を確認します:
int number;
int result = scanf("%d", &number);
if (result == 1) {
// 入力は正常に読み取られました
printf("Valid input: %d\n", number);
} else {
// 入力は無効でした
printf("Invalid input!\n");
}範囲の検証には、条件文を使用します:
if (number >= 1 && number <= 100) {
printf("Number is within valid range (1-100)\n");
} else {
printf("Number is outside valid range!\n");
}自分で試してみよう
#include <stdio.h>
int main() {
// ここにコードを記述してください
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。