1. نظرة عامة على دالة scanf
عند تعلم لغة البرمجة C، تُعد دالة scanf واحدة من أكثر الطرق المستخدمة لإدخال البيانات إلى البرنامج. إنها تعمل كـ “مستمع” للبرنامج الذي يخزن البيانات التي يُدخلها المستخدم في المتغيرات المحددة.
الصياغة الأساسية لـ scanf
scanf("formatSpecifier", &variable);
في هذا السياق، العناصر الأساسية هي “formatSpecifier” والرمز العنواني (&) قبل المتغير. يحدد محدد الصيغة نوع البيانات التي سيتم إدخالها، ويشير & إلى عنوان ذلك المتغير. باتباع هذه القاعدة، يمكن لـ scanf معالجة إدخال المستخدم بشكل صحيح.
int num;
scanf("%d", &num);
بهذه الطريقة، تزود scanf البرنامج بالمدخلات وتجعل تلك البيانات قابلة للاستخدام.
2. محددات الصيغة المستخدمة شائعًا
%d: للأعداد الصحيحة%f: لأعداد الفاصلة العائمة من النوعfloat%lf: لأعداد الفاصلة العائمة من النوعdoubleذات الدقة المزدوجة%s: للسلاسل النصية (تنتهي بمسافة أو فراغ)%c: لحرف واحد
double val;
scanf("%lf", &val);
3. معالجة مدخلات متعددة في آن واحد
int age;
float height;
scanf("%d %f", &age, &height);
printf("Age: %d, Height: %.2fn", age, height);
4. التحقق من صحة المدخلات ومعالجة الأخطاء
int age;
printf("Please enter your age (0–120): ");
if (scanf("%d", &age) == 1 && age >= 0 && age <= 120) {
printf("The entered age is %d years.n", age);
} else {
printf("Invalid age.n");
}
5. مسح تدفق الإدخال
عند استخدام scanf، قد تشعر أن “المدخلات السابقة لا تزال موجودة”. يحدث هذا لأن أحرف السطر الجديد (\n) وغيرها تبقى في تدفق الإدخال.
scanf("%*[^n]");
scanf("%*c");
هذا يسمح لك بتخطي أي سطر جديد أو أحرف أخرى متبقية في مخزن الإدخال. ومع ذلك، أثناء معالجة الحلقات يجب تجنب استخدام fflush(stdin) غير القياسي، واستخدام طرق مثل المذكورة أعلاه للسلامة.
6. الأخطاء الشائعة وأفضل الممارسات
- مطابقة محدد الصيغة: توافق نوع البيانات مع المحدد
- الحذر من طول السلسلة: عند الإدخال باستخدام
%s، يجب مراعاة حجم المخزن المؤقت - مسح التدفق: تجنب ترك أحرف السطر الجديد خلفك
7. الاستخدام المتقدم | تقنيات scanf المتطورة
char name[20];
printf("Please enter your name: ");
scanf("%19s", name); // buffer-safe measure
printf("Hello, %s!n", name);
الملخص
دالة scanf هي طريقة إدخال أساسية في لغة C. بمجرد أن تفهم محددات الصيغة، والتحقق من الأخطاء، ومعالجة تدفق الإدخال، يمكنك استخدامها بأمان. احرص على إيلاء اهتمام خاص لمخازن الإدخال المتبقية ومشكلات تجاوز سعة المخزن المؤقت.


