أهلا ومرحبا.
في هذه المحاضرة أريد أن أتحدث عنها قراءة الإدخال من لوحة المفاتيح.
هذا هو المفهوم الأساسي الذي أنا أردت أن تتعلموا
مبكرًا يا رفاق لأنها قيمة جدًا و الكثير من البرامج تأخذ المدخلات.
لذلك قدمت هذا في وقت مبكر.
بعض المفاهيم ليست كذلك سيكون واضحًا تمامًا.
لكننا بالتأكيد سنتعلم هذه المفاهيم في الأقسام الأخرى أثناء
استعراضنا ، ولكن من المهم أن تعلم هذا مبكرًا جدًا ، وهو مشابه
جدًا لوظيفة printf.
لذلك ناقشنا الإخراج.
نحن نعرف كيفية التنسيق الإخراج باستخدام printf.
علينا الآن أن نتعلم القليل قليلا عن المدخلات ، والحصول على المدخلات
من المستخدم بشكل أساسي.
من المفيد جدًا أن تسأل المستخدم لإدخال البيانات في برنامج.
تحدثنا عن سطر الأوامر الحجج التي تدخل البيانات بهذه الطريقة ، هذه
طريقة واحدة للقيام بذلك.
طريقة أخرى هي أن تسأل المستخدم مباشرة حتى يتمكنوا من كتابة شيء
ما في لوحة المفاتيح.
حتى تحصل على المدخلات من لوحة المفاتيح ، ولكن يتم عرضها عليك إدخال
الإدخال عبر المحطة الطرفية وحدة التحكم.
هذه هي الطريقة التي تدخل بها المدخلات.
تحتوي مكتبة ج العديد من وظائف الإدخال.
سنستخدم scanf.
هذه هي الوظيفة الأكثر عمومية.
انها مفيدة للغاية.
يوفر مختلف التنسيقات التي يمكنك إدخالها.
حتى تتمكن من إدخال نص وبعد ذلك ستفعل تحويلها إلى تنسيقات مختلفة.
لذلك يقرأ scanf المدخلات من ملف تيار الإدخال القياسي ، هذا هو stdin.
يمكن استخدام Scanf بالفعل لـ القراءة من الملفات أيضًا إذا كان تدفق الإدخال
عبارة عن ملف.
لكننا لن نقلق حول أي من ذلك في الوقت
الحالي ، سنستخدمه فقط قراءة المدخلات من لوحة المفاتيح.
حسنًا ، وهكذا ستدين الافتراضي هو لوحة المفاتيح.
Stdin هو تيار.
تيارات وج ، ثلاثة تيارات مختلفة.
تيار الخطأ ، قياسي في والإخراج القياسي.
قياسي بشكل افتراضي هي لوحة المفاتيح.
لذلك سنبقيها على هذا النحو.
وباستخدام scanf سوف يقوم بذلك اقرأ من المعيار ثم بناءً
على ما تدخله أو كيف تريد تخزين البيانات
، يجب أن أقول ، سيتم التحويل ما أدخلته لأن ما
تدخله سيكون نصًا.
سيتم تحويل هذا النص إلى الشكل الذي قدمته بذلك.
سوف تستخدم محددات التنسيق تمامًا مثل وظيفة printf.
لذلك يمكن أن يكون التنسيق عبارة عن تسلسل من الأحرف ، والتي تسمى سلسلة.
نحن لم ندرس ذلك في الكثير من التفاصيل حتى الآن.
لكن مرة أخرى ، سنفعل متى نتحدث عن أنواع البيانات.
وبعد ذلك يمكنك أيضًا تحديد أنواع البيانات الأخرى التي سنتحدث
عنها مثل الأعداد الصحيحة والأرقام أساسًا.
حتى تتمكن من قراءة الأرقام.
يمكنك قراءة الجمل.
يمكنك قراءة الأرقام التي تحتوي على الكسور العشرية ، وشخصيات فردية
، كل هذه الأشياء الرائعة.
إذا كان المعيار في الإدخال من لوحة المفاتيح الافتراضية ، ما
سيحدث هو ما تكتبه في النص عبر لوحة المفاتيح ، سيأخذ
هذا النص ، ويضعه في برنامج c وسيقوم بتحويل هذا النص.
والنص هو أشياء مثل الحروف والأرقام وعلامات الترقيم.
لذلك على الرغم من أنك تكتب رقم ، لا يزال نصًا لأنه يأتي من
لوحة المفاتيح.
لذلك إذا أدخلت العدد الصحيح 2014 ، وهو رقم وما يحدث أساسًا هو أنك تكتب حرفين
اثنين صفر واحد وأربعة.
وماذا يحدث وماذا سيحدث هل سيضيف إرسال هذا الإدخال
إلى برنامج c.
وإذا كنت تريد تخزين تلك البيانات كرقم ، فسيتعين عليك تحويل
تلك البيانات.
ولذا عليك تحديد التنسيق محدد كيف تريد تحويله ، تمامًا
كما تفعل في printf.
تذكر مثل مع printf الذي تستخدمه في المئة د لطباعة عدد صحيح.
سوف تقوم بتحويل النص إلى عدد صحيح باستخدام النسبة المئوية d أيضًا
لـ scanf إذا أردت ذلك تحويل السلسلة إلى رقم.
وهذا ما نذهب إليه للقيام بالأساسيات في وقت مبكر.
سنستخدم الأرقام فقط لأننا نعرف الأرقام
حتى الآن ، ولا نعرفها حقًا تعلمت عن السلاسل حتى الان.
لذلك نحن في طريقنا بشكل أساسي إلى استخدم الأرقام عندما نقوم بالإدخال.
حتى scanf.
إنه مشابه جدًا لـ printf.
لكن بدلاً من ذلك ، الأمر مختلف قليلاً في بعض الحجج التي يتطلبها الأمر.
لا يزال يستخدم سلسلة تحكم تليها قائمة الحجج.
لذلك سيكون هناك شيء ما في تلك الاقتباسات المزدوجة.
علامات الاقتباس المزدوجة عادة ما تكون يحتوي على شيء واحد فقط وسيكون
محدد التنسيق.
كيف ستحول البيانات.
لذلك تشير سلسلة التحكم أنواع البيانات الوجهة لتدفق
إدخال الأحرف.
إنه محدد التنسيق هذا ، النسبة المئوية d ، النسبة المئوية c ، النسبة المئوية s
، النسبة المئوية f للتدفق وما إلى ذلك.
تستخدم وظيفة printf متغيرًا الأسماء والثوابت والعبارات
في حججها لأننا نتعلم ذلك.
لديك شيء في اقتباسات مزدوجة.
ثم داخل المضاعفة علامات الاقتباس ، يمكنك استخدام محددات التنسيق.
ثم بعد الفواصل ، أنت يمكنك طباعة المتغيرات أو حتى
طباعة التعبيرات.
تعابير ، سنتحدث عنها مزيدًا من التفاصيل أيضًا ، الشيء الذي
يعرض قيمة بشكل أساسي.
أكثر أنواع التعبير شيوعًا هو تعبير حسابي.
وظيفة scanf مختلفة لأنه بدلاً من عرض المتغيرات
في الواقع ، فسيتم ذلك استخدام المتغيرات التي يشار إليها.
لكن المؤشرات لحسن الحظ هو مفهوم كبير في ج.
ليس عليك أن تعرف أي شيء حول المؤشرات من أجل فهم وظيفة
scanf واستخدامها.
لذلك لا تقلق بشأن ذلك.
حسنًا ، كل ما عليك فعله هو أنت يجب أن تتذكر ثلاث قواعد حول
وظيفة scanf من أجل استخدامها.
سيعيد عدد العناصر التي يقرأها بنجاح.
لذلك إذا كان يقرأ متغيرًا واحدًا ، متغيرين ، ثلاثة متغيرات ، سيعيد
ذلك.
إذا كنت تستخدم scanf لقراءة قيمة لأحد أنواع
المتغيرات الأساسية التي سنناقشها ، مثل مثل int ، و float ، و double ، ثم كل
ما عليك فعله هو اسم المتغير ، يجب أن يسبق الوسيطة بعلامة
العطف.
لا تحتاج حتى إلى معرفة السبب هذا هو الحال الآن ولكن ما عليك
سوى القيام بذلك ، أي من أنواع البيانات الأساسية.
Ampersand هو العنوان.
ولأن scanf يأخذ مؤشرًا عليك إزالة المرجع ، عليك المرور
في العنوان.
الشيء الثالث هو أنك يجب أن نتذكر ل scanf.
إذا كنت تستخدم scanf لقراءة ملف السلسلة التي هي سلسلة من الأحرف
في شخصية ، أنت لا داعي لاستخدام علامة العطف.
لذا ، فإن scanf يأخذ اثنين الحجج التي سأريكم
مثالاً عليها.
ستكون الحجة الأولى هي كيف لتحويل البيانات التي تكتبها.
وإذا قمت بتخزين تلك البيانات في int ، يمكنك استخدام النسبة المئوية لاستخدام
محدد التنسيق في المائة d.
إذا كنت تريد تخزينها في سلسلة التي لم نتعلم عنها بعد ، فأنت
تستخدم النسبة المئوية.
ثم الحجة الثانية هي و يمكن أن يكون هناك العديد من الوسائط بناءً
على عدد محددات التنسيق التي تستخدمها لأنه تمامًا مثل printf سيكون
المتغير الفعلي ، اسم المتغير.
وإذا كان المتغير هو كل شيء إلا سلسلة ، ما عليك سوى استخدام علامة العطف.
خلاف ذلك ، لا تفعل ذلك استخدم علامة العطف.
تستخدم وظيفة Scanf أيضًا مسافة بيضاء لتقرير كيفية تقسيم المدخلات
إلى حقول منفصلة.
وتشمل المسافة البيضاء أسطر وعلامات تبويب ومسافات جديدة.
ومرة أخرى ، سأعرض مثالاً لتوضيح ما يعنيه ذلك لأنه تمامًا
مثل printf يمكنه عرض العديد ، العديد من المتغيرات بناءً على عدد
محددات التنسيق الموجودة داخل ملف اقتباسات مفردة ، نفس الشيء مع scanf.
إذا كان scanf لديه أشياء متعددة داخل علامات الاقتباس المزدوجة
، ستقرأ مدخلات متعددة.
والمدخلات مستمرة ليتم تقسيمها على أسطر جديدة.
لذا مرة أخرى ، إذا كنت تريد المحاولة لفهم ما هو
scanf ، فهو عكس printf.
سيقوم Printf بتحويل الأعداد الصحيحة ، أرقام الفاصلة العائمة ، سلاسل
الأحرف ، كل هذه البيانات المختلفة أنواعًا
وسيحولها إلى نص ، حتى تتمكن من رؤيته ناتجًا.
وستكون كذلك المعروضة على الشاشة.
Scanf هو عكس ذلك.
سوف تأخذ كمدخلات نص وتحويله إلى أي نوع من أنواع البيانات المختلفة
مثل ints ، يطفو ويضاعف.
لنلق نظرة على مثال.
هذا مثال على لدينا برنامج بسيط.
نحن نعلم ما هو الروتين الرئيسي.
نحن نعلم ما هو التوجيه التضمين.
لم نتعلم الأحرف والأعداد الصحيحة حتى الآن.
ولكن في الأساس في الجزء العلوي من ذلك الوظيفة الرئيسية
، نحن ننشئ متغيرين لأننا نحتاج إلى التخزين البيانات ، وسنتحدث عن
المتغيرات بمزيد من التفصيل.
ولكن تمامًا مثل وظيفة printf ، مرة أخرى ، أنت تفعل العكس تمامًا.
نعرض هنا الناتج لـ الشاشة تقول أدخل قيمة.
Scanf داخل مزدوج علامات الاقتباس لديها محددات التنسيق لقراءتها
في الإدخال.
ولذا عليك تحديد البيانات التي ستتم قراءتها
، هنا تقول بالمائة s ، بالمائة د.
ما يعنيه ذلك هو أننا نقرأ في ملف السلسلة ، ثم نقرأ في عدد صحيح.
وستلاحظ أن الخيط لا يحتوي على علامة العطف والمسح الضوئي بعد
الفاصلة الأولى.
وبعد الفاصلة الثانية ، لدينا ملف علامة العطف لأنها عدد صحيح.
نحن نقرأ في عدد.
ثم printf يتم عرض الإخراج.
لذلك يقول أنك دخلت في هذا سلسلة في هذا العدد الصحيح ، تمامًا كما
نعرف ما يفعله printf ثم الدالة الرئيسية ترجع صفرًا.
حسنًا ، لنستعرض هذا مثال في الثانية في كتل التعليمات البرمجية.
لكن دعنا نكرر فقط بعض المفاهيم.
عندما يستخدم برنامج scanf ل يجمع المدخلات من لوحة المفاتيح ،
وينتظر منك إدخال بعض النص.
لذا فإن البرنامج يعمل بالفعل للتوقف حتى تقوم بإدخال البيانات.
وبعد ذلك بمجرد إدخال بعض النص.
وإذا أدخلت بعض المسافات ، إذا كنت تدخل في أشياء متعددة
، فسيستمر البرنامج ويقرأ الإدخال بمجرد الضغط على
زر الإدخال.
عليك أن تضغط على زر الدخول.
مرة أخرى ، تتوقع scanf إدخالًا في ملف نفس التنسيق الذي قدمته بالضبط.
لذلك إذا قلت النسبة المئوية والنسبة المئوية هـ ، هذا
يعني أنه يجب عليك تقديم سلسلة متبوعة بمسافة ، أي عدد من
المسافات متبوعًا بعدد صحيح ورقم وكلمة.
السلسلة هي كلمة عدد صحيح هو رقم.
لذلك دعنا ننتقل إلى هذا المثال سطر بسطر في كتل التعليمات البرمجية.
حسنًا ، لدينا هنا وظيفتنا الرئيسية.
ومرة أخرى ، من المهم أن تكون كذلك قادرة على إدخال البيانات في البرنامج.
لذلك تمامًا مثل printf ، فإنه يسير لنكون متشابهين للغاية ، ولا يتعين
علينا فهم كل هذه الشفرات.
وحتى نتخلص من المعلمات التي يتم تمريرها
، وظيفة رئيسية بسيطة.
لسنا مضطرين لذلك فهم كل هذا الرمز.
ليس علينا حتى أن نفهم ما هي المتغيرات في هذه المرحلة.
لكن المتغيرات سوف تخزن البيانات.
في المثال ، نقوم بإنشاء مصفوفة نصية من 100 وبها فاصلة منقوطة ثم نحن سنقوم أيضًا بإنشاء
عدد صحيح ، تمامًا كما هو الحال
في printf.
لدينا عدد صحيح ، ولكن نحن نستخدم سلسلة.
أنا فقط أريد أن أبين مدخلات مختلفة.
ثم عادة في أي وقت قبل ذلك اتصل بوظيفة scanf للحصول على مدخلات من لوحة المفاتيح
، فأنت دائمًا سيخبر المستخدم بشيء ما.
تريد أن تخبرهم ماذا يدخلون.
لذا ، تذكر ، printf ، يعرض البيانات على الشاشة.
سنقول فقط أدخل قيمة.
وسوف يفعلون في الواقع أدخل زوجين ثم ننهيها بفاصلة
منقوطة.
علينا أن نقول المستخدم لإدخال شيء ما.
الآن هنا حيث نحن استخدم وظيفة scanf.
نقول scanf ثم داخل بين قوسين ، فإن الوسيطة الأولى داخل علامتي الاقتباس
المزدوجة هي قيد التنفيذ لتكون بيانات سنقرأها.
لذا في هذا المثال ، دعنا فقط لنفترض أننا سنقرأ فقط
إدخال واحد بالمائة d وهو عدد صحيح.
وبعد ذلك نحن ذاهبون إلى تخزين هذه البيانات في متغير
لأننا نريد أن ننظر إليها.
وسوف يكون أنا.
الآن علينا تحديد علامة العطف قبل ذلك لأن ، تذكر ، هذه الحيلة الصغيرة
مع المؤشرات.
ليس عليك أن تعرف لماذا ، إنه مجرد العنوان.
إذاً هذا المسح ، في السطر 17 ، سوف فعليًا قراءة البيانات من لوحة المفاتيح حتى يضغط
المستخدم على زر الإدخال.
وبعد ذلك ستذهب تلك البيانات يتم تخزينها في متغير يسمى I.
لذا الآن نريد فقط اطبع ما دخلناه.
لذلك سنقول هنا ، سنقوم بإضافة سطر تغذية بحيث يمكن قراءته لذلك
سنقوم بذلك استخدم تسلسل الهروب ، شرطة مائلة
عكسية n وسنخبرك بذلك.
لقد أدخلت النسبة المئوية ونحن ذاهبون لعرض قيمة المتغير.
ونحن أيضا ذاهبون إلى ضع خط التغذية بعد.
إذن قيمة المتغير الذي نريد عرضه هو أنا.
سننتهي مع فاصلة منقوطة.
ثم هذا هو برنامجنا.
لذا مرة أخرى طباعة الإخراج ، يسأل عن قيمة ، قراءة سطر الإدخال 17 لتحديد البيانات
التي نحن القراءة عبارة عن عدد صحيح ، وتخزينه فيه ، باستخدام
علامة العطف ، وبعد ذلك اطبع ما دخلناه للتو.
لذلك دعونا نبني هذا ودعنا نديره.
وسترى بدء البرنامج ثم يتوقف مؤقتًا لأنه يريد منك
إدخال قيمة.
تقول أدخل قيمة.
لذا في هذه المرحلة ، لا بد لي من إدخال الرقم الذي يمكنني تحويله إلى سلسلة لأن
هذا ما يحدث.
لذا هنا سأقول فقط 56.
وبعد ذلك ، سأقوم بالضغط على Enter.
تم تشغيله مرتين لأن ماسح الفيروسات الخاص بي.
سأقول 56 ثم أدخل.
ثم تطبع ، دخلت 56.
لذلك تمكنت من إدخال المعلومات ، number وتخزينها في متغير.
الآن تمامًا مثل printf ، يمكنك جعلهم يدخلون أشياء
متعددة و تخزين في متغيرات متعددة.
حتى هنا بعد أن ينتهي في عدد صحيح ، سأقول نسبة مئوية
أخرى ، نسبة محدد التنسيق ، مما يعني أنني أريدهم أن يدخلوا سلسلة ، وهي
مجرد كلمة بحث.
لذا هنا ، تذكر ، إذا كانت كلمة ، فأنا ليس من الضروري توفير علامة العطف.
لذلك سأقول فقط ضجة ، أريد تخزين تلك البيانات
في مخزن المتغير.
ومرة أخرى ، سنتعرف على المتغيرات.
ثم سأذهب لمجرد طباعتها.
وأضفت متغيرًا آخر أنت تعرف printf وسأضع النقطتين
قبل أن يكون لديك أيضًا لتحديد التنسيق الذي
تطبعه ، لذا فهي في المئة s.
لذا نأمل أن يكون هذا واضحًا.
سأقرأ الآن في قسمين المدخلات مفصولة بمسافات ، قم بتخزينها
في متغيرين ، وتقليبها ثم عرضها.
والآن إذا بنينا وركضنا.
لذا سأدخل هنا رقم 22 ، سأصل إلى الفضاء ثم أدخل اسمي ثم سأضرب
العودة.
عندما أفعل ذلك ، البرنامج سيتوقف مؤقتًا
وسيعرض الرقم الأول دخلت ثم السلسلة.
لذلك يعرض 22 وجيسون.
إذن هذه هي الطريقة التي يمكنك الحصول عليها المدخلات من المستخدم ، أربعة أو خمسة أسطر بسيطة
من التعليمات البرمجية.
شيء واحد سريع آخر أريد أن أعرضه أنت كيف يمكنك أن تقرأ بشكل مزدوج.
لذلك لاحقًا في الدروس ، أنت سيتم توضيح كيفية القراءة في الطفو
وهذا عادةً ما يستخدم تنسيق محدد في المئة و.
ولكن إذا ركضت وقرأت مرتين ، إنها في الواقع مختلفة قليلاً إذا
كنت تستخدم النسبة المئوية lf ، لذا نوعًا ما احتفظ بهذا في الخلف في عقلك.
إذا قمت بإنشاء اسم متغير مزدوج x ثم أستخدم scanf لقراءة ذلك ، أحتاج إلى قراءته باستخدام
النسبة المئوية LF.
هذا هو الشكل المحدد الذي تريد استخدامه.
ثم مرة أخرى تمامًا مثل الأخرى ، يمكنك استخدام علامة
العطف للعنوان وتقول x.
وهكذا هذا كيف يمكنك قرأت على وجه التحديد في مزدوج.
وهذا مختلف من القراءة في التدفق.
لذا احتفظ بهذا في الخلف في عقلك.
عندما تذهب لتشغيل هذا ، ستلاحظ إنه يعمل بشكل واضح ومباشر.
ويمكنك قراءة المدخلات قراءة مزدوجة.
لذا عليك فقط المضي قدمًا وتشغيل ذلك.
ولذا ستطلب ضعف ، لم أفعل الكثير حقًا.
ويكون هذا العدد الزوجي مثل 77. 8 و ثم سنقرأها ونخزنها ، إنها
واضحة جدًا.
لذا فإن scanf جدا مفيد كما ذكرت.
أشياء أخرى مع scanf ستلاحظ أثناء تقدمك في الدورة أنه
هذا المسح الضوئي في بعض الأحيان لا يعمل بشكل جيد.
يمكنك استخدام f get s لأشياء أخرى.
المشكلة الرئيسية في scanf هي عندما تقرأ ، فأنت تقرأ
فقط حتى ترى مساحة.
وهكذا إذا حاولت استخدام scanf ، حاولت الاتصال
به عدة مرات في وظيفة.
مع مجموعات أخرى ، قد يكون لا تعمل بشكل
جيد لأن ما يحدث هو عندما تضغط على زر الرجوع على
لوحة المفاتيح ، لن يحدث ذلك قراءة زر العودة هذا لأنه يقرأ
فقط في كلمة واحدة.
ولذا لن يحدث ذلك للحصول على تغذية الخط.
لذا في المرة القادمة التي تستخدم فيها scanf ، سيتخطى هذا الخط
على الفور وسيذهب لقراءة في خط التغذية.
لذا فهذه مشكلة سترى إذا كتبت عدة ملفات scanfs
في برنامج واحد تلو الآخر ، ستلاحظ أن ملفات
scanfs الأخرى لا تعمل بسبب إنهم يقرؤون في تغذية السطر.
طريقة سهلة للغاية للالتفاف على ذلك بعد إجراء الفحص مباشرة ، يمكنك
الاتصال بـ git char ثم الاتصال ماسح ضوئي آخر ، ولكن هذا مفهوم أكثر
للحديث عنه لاحقًا.
كان هذا فقط لتظهر لك متى تقرأ في مضاعفة باستخدام scanf ، تأكد
من استخدام النسبة المئوية LF.
ومرة أخرى ، هذا مفيد لأن ستساعدك بعض التحديات التي نواجهها في الحصول على مدخلات
من المستخدم من أجل القيام بأشياء مفيدة وتعلم مفاهيم مختلفة
، فنحن كذلك قادرة على الحصول على مدخلات من المستخدم.
لذلك آمل أن يكون هذا قد ساعد.
ومرة أخرى ، لا تقلق بشأن البعض من هذه
المفاهيم أنك لا تفهم الأشياء بشكل كامل مثل المتغيرات والسلاسل
، سنناقش كل ذلك بتفاصيل كثيرة ، شكرًا لك.