اعتبارسنجی ورودی (Input Validation)
اعتبارسنجی ورودی یعنی چک کنیم داده ی ورودی درست است. «ورودی (Input)» همان چیزی است که کاربر می نویسد. با اعتبارسنجی، برنامه کرش نمی کند و نتیجه ی اشتباه نمی دهد.
اعتبارسنجی ورودی چیست؟
اگر کاربر مقدار عجیب بدهد، باید جلوش را بگیری. اول ورودی را بخوان، سپس شرط ها را بررسی کن، بعد ادامه بده یا پیام خطا بده.
اعتبارسنجی بازه عددی
عدد باید داخل بازه مجاز باشد. خارج بود، دوباره بپرس.
#include <stdio.h>
int main() {
int number;
do {
printf("Choose a number between 1 and 5: ");
scanf("%d", &number);
while (getchar() != '\n') {
}
} while (number < 1 || number > 5);
printf("You chose: %d\n", number);
return 0;
}
اعتبارسنجی متن ورودی
نام نباید خالی باشد. با fgets() بخوان و خالی بودن را چک کن.
#include <stdio.h>
#include <string.h>
int main() {
char name[100];
do {
printf("Enter your name: ");
fgets(name, sizeof(name), stdin);
name[strcspn(name, "\n")] = 0;
} while (strlen(name) == 0);
printf("Hello, %s\n", name);
return 0;
}
اعتبارسنجی عدد صحیح
اگر کاربر حرف زد، دوباره بپرس. از fgets() و sscanf() کمک بگیر.
#include <stdio.h>
int main() {
int number;
char input[100];
printf("Enter a number: ");
while (fgets(input, sizeof(input), stdin)) {
if (sscanf(input, "%d", &number) == 1) {
break;
} else {
printf("Invalid input. Try again: ");
}
}
printf("You entered: %d\n", number);
return 0;
}
نکته: برای پیام دهی بهتر، از مدیریت خطا استفاده کن. همچنین اشاره گر تهی را در مقدار NULL بشناس.
گام های عملی سریع
- ورودی را بخوان و در متغیر ذخیره کن.
- شرط های معتبر بودن را بررسی کن.
- در خطا پیام بده و دوباره بپرس.
جمع بندی سریع
- ورودی بد را رد کن.
- بازه ها را کنترل کن.
- خالی بودن متن را چک کن.
- حروف به جای عدد را بگیر.