scanf والإدخال
قراءة إدخال المستخدم
scanf والإدخال درس مجاني في C Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 4 دروس في المجموع.
ما الذي يفعله scanf
يقرأ scanf إدخالًا منسقًا يكتبه المستخدم. ويستخدم محددات التنسيق نفسها التي يستخدمها printf.
#include <stdio.h>
int main(void) {
int x = 0;
/* scanf("%d", &x); */
x = 5;
printf("x = %d\n", x);
return 0;
}عامل الحصول على العنوان
يحتاج scanf إلى عنوان متغير حتى يتمكن من تخزين القيمة فيه. لذلك تكتب &x.
#include <stdio.h>
int main(void) {
int x = 42;
int *p = &x;
printf("value via address = %d\n", *p);
return 0;
}قراءة عدد صحيح
لقراءة عدد صحيح، مرّر %d وعنوان متغير من نوع int.
#include <stdio.h>
int main(void) {
int n;
/* scanf("%d", &n); */
n = 7;
printf("You entered %d\n", n);
return 0;
}قراءة قيمة عشرية
لقراءة قيمة من نوع float، استخدم %f؛ أما لقراءة قيمة من نوع double، فاستخدم %lf.
#include <stdio.h>
int main(void) {
double d;
/* scanf("%lf", &d); */
d = 3.14;
printf("d = %.2f\n", d);
return 0;
}قراءة قيم متعددة
يمكن لاستدعاء scanf واحد قراءة عدة قيم تفصل بينها مسافات بيضاء.
#include <stdio.h>
int main(void) {
int a, b;
/* scanf("%d %d", &a, &b); */
a = 3; b = 4;
printf("sum = %d\n", a + b);
return 0;
}قراءة محرف
استخدم %c لقراءة محرف واحد. انتبه: فهو يقرأ المسافات والأسطر الجديدة أيضًا.
#include <stdio.h>
int main(void) {
char c;
/* scanf(" %c", &c); */
c = 'X';
printf("char = %c\n", c);
return 0;
}قراءة كلمة
يقرأ %s كلمة مفصولة بمسافات بيضاء إلى مصفوفة من char. ولا حاجة إلى & لأن اسم المصفوفة هو عنوان أصلًا.
#include <stdio.h>
int main(void) {
char word[20];
/* scanf("%s", word); */
word[0] = 'H'; word[1] = 'i'; word[2] = 0;
printf("word = %s\n", word);
return 0;
}القيمة المعادة من scanf
تعيد scanf عدد العناصر التي قرأتها بنجاح. افحص هذه القيمة لاكتشاف الإدخال غير الصحيح.
#include <stdio.h>
int main(void) {
int n = 5;
int read = 1; /* pretend scanf returned 1 */
if (read == 1)
printf("got %d\n", n);
return 0;
}تخطي المسافات البادئة
تتخطى محددات القيم العددية المسافات البيضاء البادئة تلقائيًا، لكن %c لا يفعل ذلك. وتُصلح إضافة مسافة قبل %c هذه المشكلة.
#include <stdio.h>
int main(void) {
char c = 'Y';
printf("Reading with \" %%c\" skips spaces\n");
printf("c = %c\n", c);
return 0;
}التحقق من صحة الإدخال
تحقق دائمًا من قيمة الإرجاع قبل الوثوق بالبيانات.
#include <stdio.h>
int main(void) {
int value = 10;
int ok = 1;
if (ok)
printf("valid: %d\n", value);
else
printf("invalid input\n");
return 0;
}جمع الأجزاء معًا
يطلب البرنامج النموذجي قيمة، ثم يقرأها، ثم يستخدمها.
#include <stdio.h>
int main(void) {
int age;
printf("Enter age: ");
/* scanf("%d", &age); */
age = 20;
printf("Next year you will be %d\n", age + 1);
return 0;
}اختبار سريع
اختبر مدى فهمك لـ scanf.
مراجعة: scanf والإدخال
تعلمت كيفية قراءة إدخال المستخدم.
- يستخدم
scanfمحددات بتنسيق printf - مرّر
&varلكي يعرف مكان التخزين - استخدم
%lfمع double و%sمع الكلمات - تحقق من قيمة الإرجاع للتحقق من صحة الإدخال
- ضع مسافة قبل
%cلتجاوز المسافات البيضاء
الأسئلة الشائعة
هل درس «scanf والإدخال» مجاني؟
نعم — نص درس «scanf والإدخال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 4 دروس في المجموع.
ماذا ستتعلم في «scanf والإدخال»؟
قراءة إدخال المستخدم تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟
لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «scanf والإدخال»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟
نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.