دریافت ورودی با scanf

دریافت ورودی کاربر با تابع scanf در زبان C

تابع scanf یکی از پرکاربردترین توابع کتابخانه استاندارد C برای دریافت ورودی از کاربر است. این تابع داده‌ها را از ورودی استاندارد (معمولا صفحه کلید) خوانده و در متغیرهای مشخص شده ذخیره می‌کند.

مهم: هنگام استفاده از scanf همیشه آدرس متغیرها را با عملگر & مشخص کنید، مگر در مورد آرایه‌های کاراکتری.

سینتکس پایه scanf

فرمت کلی استفاده از این تابع به صورت زیر است:

int scanf(const char *format, ...);

پارامترهای اصلی:

  • format: رشته فرمت که نوع داده ورودی را مشخص می‌کند
  • ...: آدرس متغیرهایی که داده‌ها در آنها ذخیره می‌شوند
کد فرمت نوع داده مثال
%d عدد صحیح scanf("%d", &num);
%f عدد اعشاری scanf("%f", &price);
%c کاراکتر scanf("%c", &ch);
%s رشته scanf("%s", name);

مثال‌های کاربردی

در اینجا چند نمونه کد عملی برای درک بهتر عملکرد scanf ارائه می‌شود:

مثال 1: دریافت یک عدد صحیح

int age;
printf("سن خود را وارد کنید: ");
scanf("%d", &age);

مثال 2: دریافت چند مقدار به صورت همزمان

float height, weight;
printf("قد و وزن خود را وارد کنید: ");
scanf("%f %f", &height, &weight);

برای یادگیری عمیق‌تر درباره دریافت ورودی در C می‌توانید به آموزش اینجا را کلیک نمایید مراجعه کنید.

نکات ایمنی و خطاهای رایج

استفاده از scanf بدون در نظر گرفتن موارد زیر می‌تواند منجر به مشکلات امنیتی یا خطاهای منطقی شود:

  1. همیشه مقدار بازگشتی scanf را بررسی کنید (تعداد مقادیر خوانده شده)
  2. برای رشته‌ها از محدودیت طول استفاده کنید (مثلا %19s برای آرایه 20 کاراکتری)
  3. از ترکیب scanf با توابع دیگر برای پاکسازی بافر ورودی استفاده کنید

در نهایت، scanf یک ابزار قدرتمند اما نیازمند دقت بالا است. با رعایت اصول صحیح استفاده، می‌توانید برنامه‌های تعاملی و کاربرپسندتری ایجاد کنید.