שפת C/פלט וקלט: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Atavory (שיחה | תרומות)
Atavory (שיחה | תרומות)
שורה 216:
{{שקול לדלג|סיבה = נושא זה מסביר כיצד לשלוט בצורה מדוייקת מאד בקלט, דבר שאינו נצרך לרוב. הדבר שימושי בעיקר ב[[שפת C/פלט וקלט קבצים|פלט וקלט קבצים]].}}
 
נניח שאנו רוצים לקלוט שני מספרים, כל אחד בעל 5 ספרות. נוכל לכתוב זאת כך:
{{להשלים}}
<source lang = "c">
int x, y;
 
scanf("%5d %5d", &x, &y);
</source>
נשים לב שיקלטו שני מספרים שביניהם רווח אחד או יותר.
 
עתה נניח שאנו רוצים לקלוט שני מספרים, כל אחד בעל 5 ספרות, מופרדים על ידי פסיק. נוכל לכתוב זאת כך:
<source lang = "c">
int x, y;
 
scanf("%5d,%5d", &x, &y);
</source>
כלומר, צריך לשים פסיק במחרוזת התבנית. אם המשתמש אכן יקליד שני מספרים מופרדים על ידי פסיקים, ייקלטו המספרים בx וy, והפונקציה תחזיר 2. אם לא, הפוקנציה תחזיר מספר קטן מ2.
 
נוכל להכליל זאת:
*אם מופיע תו שאינו רווח במחרוזת התבנית, הקלט ימשיך רק אם המשתמשת תקליד תו זה בדיוק.
*הפונקציה scanf מחזירה את מספר המשתנים שהצליחה לקלוט.
 
==פונקציות קלט/פלט נוספות==