פורסם 2007 ביוני 118 שנים הייניסיתי לקלוט נתונים ל3 משתנים בפורמט הבא:dd-mmm-yy שנה/חודש/יוםהשתמשתי בפקודה הבאה:scanf("%d-%s-%d",&day,&month,&year);היום נקלט כמו שצריךבחודש הוא קולט לי גם את החודש וגם את השנהלמשל לקלט18-jun-80בחודש נקלט ליjun-80בשנה לא נקלט כלוםהערה: בגלל שהכתוב נמצא בפורמט ימין-שמאל אז כשכתבתי את הקלט זה לא נראה כמו שצריךתודה לעוזרים
פורסם 2007 ביוני 118 שנים תקלוט עם %3s וככה scanf יידע שהמחרוזת נגמרת אחרי 3 תווים.אגב, אלו פונקציות של C ולא של C++.
פורסם 2007 ביוני 118 שנים מחבר יצר לי עוד יותר בלאגן בקליטה.דרך אגב עם 3 %d זה דווקא הולך טוב, רק שאני צריך לקלוט את היום ושנה במספרים והחודש באותיות.
פורסם 2007 ביוני 118 שנים כשאתה קולט לתוך מחרוזת, אתה לא צריך להוסיף &.ה& בעצם מציין את הכתובת בזיכרון שהמשתנה נמצא בו, כדי שתוכל לכתוב אליו מתוך הפונקציה וזה ישאר גם מחוץ לפונקציה. מחרוזת מצויינת כבר ע"י פוינטר(מצביע לכתובת בזיכרון), ולכן אתה לא צריך לרשום &(כשאתה תרשום &, בעצם תשנה את המיקום שהמחרוזת שלך אמורה להיות בו).
פורסם 2007 ביוני 118 שנים מחבר גם בלי ה& זה לא עובד כמו שצריך.למשל אם ניקח את התוכנית הזאת:#include <stdio.h>int main(){ char s[2],s2[3],s3[2]; printf("Enter a date as dd-mmm-yy:\n"); scanf("%s-%s-%s",s,s2,s3); printf("first=%s",s); printf("second=%s",s2); printf("third=%s",s3); return 0;}התוכנית לא קולטת נכון את הערכים.מה צריך לתקן כדי שהתוכנית תעבוד כמו שצריך?
פורסם 2007 ביוני 118 שנים תגדיר את המחרוזת שלך בגודל אחד יותר(בשביל הבקסלש אפס שמציין את סוף המחרוזת).
פורסם 2007 ביוני 318 שנים ניסיתי ולא עזר. התוכנית קולטת את כל הביטוי לכל אחת מהמחרוזות.זה בגלל שסטרינג נגמר כאשר המקלדת קולטת סוף שורה ולא רווח, ולכן שאר הסטרינגים לא נקלטים, לכן מומלץ ליידע את scanf לגודל הסטרינג שיקלט לכל קובץ על ידי המיספור שהוצע כבר.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.