English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
دالة مكتبة C int scanf(const char *format, ...) قراءة الإدخال الم格式ات المحدد من المدخل القياسي stdin.
إليك إعلان دالة scanf().
int scanf(const char *format, ...)
شكل معرفات format:
[=%[*][عرض][معلمات]نوع=]
يتم شرح ذلك بشكل تفصيلي كما يلي:
المعامل | الوصف |
---|---|
* | هذا هو علامة النجمة الاختيارية، مما يعني أن البيانات يتم قراءتها من التدفق stream، ولكن يمكن تجاهلها، أي أنها لا يتم تخزينها في المعامل المحدد. |
عرض | هذا يحدد عدد الحروف الأقصى التي سيتم قراءتها في عملية القراءة الحالية. |
المعلمات | تحديد حجم مختلف من البيانات التي تشير إليها المعلمات الإضافية للنوع غير الكامل (لـ d، i و n) أو النوع غير السالب (لـ o، u و x) أو النوع العشري (لـ e، f و g) h: طول قصير (لـ d، i و n) أو طول غير سالب قصير (لـ o، u و x) l: طول كامل (لـ d، i و n) أو طول غير سالب كامل (لـ o، u و x) أو ثنائي (لـ e، f و g) L: نوع طول الثنائي (لـ e، f و g) |
النوع | حرف، يحدد نوع البيانات التي سيتم قراءتها وكيفية قراءتها. يرجى الرجوع إلى الجدول التالي. |
موضح بالتفصيل نوع scanf:
نوع | المستخدم الجيد | نوع المعامل |
---|---|---|
%a、%A | قراءة قيمة عشريه (محدود للغاية C99). | float * |
%c | حرف واحد: قراءة الحرف التالي. إذا تم تحديد عرض عرض غير 1، فإن الدالة ستقرأ عرض الحروف، وستخزن الحروف في المواقع المتتالية في المجموعة، و لن يتم إضافة حرف فراغ في النهاية. | |
%d | العدد العشري: يمكن أن يكون الرمز المقدم أو الناقص + أو - غير مطلوب. | int * |
%e、%E、%f、%F、%g、%G | العدد العشري: يحتوي على نقطة عشرية، ويمكن أن يكون هناك رمز مقدم أو ناقص + أو -، ويمكن أن يكون هناك رمز خلفي e أو E، وعدد عشري. أمثلة صحيحة -732.103 و 7.12e4 | float * |
%i | قراءة العدد العشري، العددي العشري، العددي العشري . | int * |
%o | عدد عشري. | int * |
%s | السلسلة. سيقرأ الحروف المتتالية حتى يصل إلى حرف فراغ (يمكن أن يكون الحرف الفراغ هو الفراغ أو الرمز الناتج أو الرمز التبديلي). | |
㩵n | عدد عشري غير سالب. | unsigned int * |
%x、%X | عدد عشري. | int * |
%p | قراءة إشارة المرجع . | |
%[] | التمشيط مجموعة الحروف . | |
%% | قراءة %. |
إذا كانت النتيجة ناجحة، فإنها تعود عدد الأرقام التي تم تطابقها وتخصيصها. إذا وصل إلى نهاية الملف أو حدث خطأ في القراءة، فإنها تعود EOF.
في هذا المثال، يتم عرض استخدام وظيفة scanf().
#include<stdio.h> int main(void) { int a,b,c; printf("ادخل ثلاثة أرقام:"); scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d\n",a,b,c); return 0; }
لنقوم بتشغيل البرنامج أعلاه وسيظهر النتيجة التالية في الوضع التفاعلي:
ادخل ثلاثة أرقام: 1 2 3 1,2,3
شرح التحليل:
#include<stdio.h> int main(void) { int a,b,c; printf("ادخل ثلاثة أرقام:"); scanf("%d, %d, %d",&a,&b,&c); printf("%d, %d, %d\n",a,b,c); return 0; }
لنقوم بتشغيل البرنامج أعلاه وسيظهر النتيجة التالية في الوضع التفاعلي:
ادخل ثلاثة أرقام: 1, 2, 3 1, 2, 3
ملاحظة:، يجب أن يتبع الرقم مباشرة، لا يمكن أن يكون هناك فراغ بين الرقم و،.
عند إدخال %c، الفراغات والرمز المحدد كـ\"مسموح بهما كحروف.
#include<stdio.h> int main(void) { char a,b,c; printf("ادخل ثلاثة أحرف:"); scanf("%c%c%c",&a,&b,&c); printf("%c,%c,%c\n", a,b,c); return 0; }
لنقوم بتشغيل البرنامج أعلاه وسيظهر النتيجة التالية في الوضع التفاعلي:
$ ./a.out ادخل ثلاثة أحرف: run r,u,n $ ./a.out ادخل ثلاثة أحرف: r u n r, ,u
في هذا المثال، يتم عرض استقبال الأحرف:
#include <stdio.h> int main() { char str1[20], str2[30]; printf("ادخل اسم المستخدم الرجاء:"); scanf("%s", str1); printf("ادخل موقعك الرجاء:"); scanf("%s", str2); printf("ادخل الاسم المستخدم:%s\n", str1); printf("ادخل الموقع:%s", str2); return(0); }
لنقوم بتشغيل البرنامج أعلاه وسيظهر النتيجة التالية في الوضع التفاعلي:
الرجاء إدخال اسم المستخدم: admin الرجاء إدخال موقعك: ar.oldtoolbag.com اسم المستخدم المدخل: admin الموقع المدخل: ar.oldtoolbag.com