دریافت ورودی با 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 بدون در نظر گرفتن موارد زیر میتواند منجر به مشکلات امنیتی یا خطاهای منطقی شود:
- همیشه مقدار بازگشتی scanf را بررسی کنید (تعداد مقادیر خوانده شده)
- برای رشتهها از محدودیت طول استفاده کنید (مثلا %19s برای آرایه 20 کاراکتری)
- از ترکیب scanf با توابع دیگر برای پاکسازی بافر ورودی استفاده کنید
در نهایت، scanf یک ابزار قدرتمند اما نیازمند دقت بالا است. با رعایت اصول صحیح استفاده، میتوانید برنامههای تعاملی و کاربرپسندتری ایجاد کنید.