مفاهيم I / O الأساسية في C

كيفية إجراء الإدخال / الإخراج باستخدام printf و scanf في لغة C.

C لغة صغيرة ، و "جوهر"جلا يتضمن أي وظائف إدخال / إخراج (I / O).

هذا ليس شيئًا فريدًا بالنسبة لـ C ، بالطبع. من الشائع أن يكون جوهر اللغة محايدًا في I / O.

في حالة C ، يتم توفير المدخلات / المخرجات لنا من خلال مكتبة C القياسية عبر مجموعة من الوظائف المحددة فيstdio.hالملف الاساسي.

يمكنك استيراد هذه المكتبة باستخدام:

#include <stdio.h>

أعلى ملف C.

توفر لنا هذه المكتبة ، من بين العديد من الوظائف الأخرى:

  • printf()
  • scanf()
  • sscanf()
  • fgets()
  • fprintf()

قبل أن أصف ما تفعله هذه الوظائف ، أود أن أستغرق دقيقة للحديث عنهاI / O تيارات.

لدينا 3 أنواع من تدفقات الإدخال / الإخراج في C:

  • stdin(إدخال قياسي)
  • stdout(الإخراج القياسي)
  • stderr(خطأ تقليدي)

مع وظائف الإدخال / الإخراج ، نعمل دائمًا مع التدفقات. الدفق هو واجهة عالية المستوى يمكن أن تمثل جهازًا أو ملفًا. من وجهة نظر C ، ليس لدينا أي اختلاف في القراءة من ملف أو القراءة من سطر الأوامر: إنه دفق I / O في أي حال.

هذا شيء واحد يجب مراعاته.

تم تصميم بعض الوظائف للعمل مع دفق معين ، مثلprintf()، والتي نستخدمها لطباعة الأحرف إلىstdout. باستخدام نظيره الأكثر عموميةfprintf()، يمكننا تحديد الدفق المراد الكتابة إليه.

منذ أن بدأت أتحدث عنهprintf()، دعنا نقدمه الآن.

printf()

printf()هي إحدى الوظائف الأولى التي ستستخدمها عند تعلم برمجة لغة سي.

في أبسط أشكال الاستخدام ، يمكنك تمرير سلسلة حرفية لها:

printf("hey!");

وسيقوم البرنامج بطباعة محتوى السلسلة على الشاشة.

يمكنك طباعة قيمة متغير ، وهو أمر صعب بعض الشيء لأنك تحتاج إلى إضافة حرف خاص ، عنصر نائب ، والذي يتغير اعتمادًا على نوع المتغير. على سبيل المثال نستخدم ملفات%dلرقم صحيح عشري بعلامة:

int age = 37;

printf(“My age is %d”, age);

يمكننا طباعة أكثر من متغير باستخدام الفواصل:

int age_yesterday = 36;
int age_today = 37;

printf(“Yesterday my age was %d and today is %d”, age_yesterday, age_today);

هناك محددات تنسيق أخرى مثل%d:

  • %cلفحم
  • %sلسلسلة
  • %fلأرقام الفاصلة العائمة
  • %pللمؤشرات

و أكثر من ذلك بكثير.

يمكننا استخدام أحرف الهروب فيprintf()، مثل\nوالتي يمكننا استخدامها لجعل الإخراج ينشئ سطرًا جديدًا.

scanf()

printf()يستخدم كدالة الإخراج. أريد أن أقدم وظيفة الإدخال الآن ، لذا يمكننا القول أنه يمكننا القيام بكل شيء الإدخال / الإخراج:scanf().

تُستخدم هذه الوظيفة للحصول على قيمة من المستخدم الذي يقوم بتشغيل البرنامج ، من سطر الأوامر.

يجب علينا أولاً تحديد متغير يحمل القيمة التي نحصل عليها من الإدخال:

int age;

ثم نتصلscanf()مع وسيطتين: تنسيق (نوع) المتغير وعنوان المتغير:

scanf("%d", &age);

إذا أردنا الحصول على سلسلة كمدخلات ، فتذكر أن اسم السلسلة هو مؤشر للحرف الأول ، لذلك لا تحتاج إلى&قبلها:

char name[20];
scanf("%s", name);

إليك برنامج صغير يستخدم كليهماprintf()وscanf():

#include <stdio.h>

int main(void) {
  char name[20];
  printf("Enter your name: ");
  scanf("%s", name);
  printf("you entered %s", name);
}

تحميل مجانيكتيب C


المزيد من دروس clang: