עבור לתוכן

בעיה בקריאה מקובץ. C

Featured Replies

פורסם

חברים שלום

יש לי בעיה כזו.

יש לי רשימה של קבצי טקסט שהם כבר פתוחים והשמות שלהם הם בסדר מסויים למשל file0.txt file1.txt וכו'..

עכשיו אני עשיתי לולה שכל פעם תקרא לי שורה בכל קובץ ותכניס למבנה לפי הסיווג שאני נותן לו ..

איך אני בונה את ה פקודה fscanf שיגש לי כל פעם לקובץ הנוכחי

אבל הוא מראה לי שגיאה כל פעם ב (i)runner




fscanf(runner[i],"%*[^0-9]%d%*[^A-Za-z]%c%*[^}]%*c%*c%c",&temp_runs->order_id,&temp_runs->status,&ch)

פורסם

מומלץ שתרשום בכותרת באיזו שפה אתה עובד.

חוץ מזה, איך אתה מצפה שנצליח להבין משהו משורת קוד אחת? כתוב את כל הפונקציה לפחות.

פורסם
  • מחבר

צודק מצטער פעם ראשונה שאני רושם פה.

אז הנה חלק הקוד שלי

אני אסביר קצת .

יש לי תוכנית שמקבלת קבצים של שליחים בחברת שליחויות (אני לא אמור לדעת כמה קבצים של שליחים יש לי)

לכן בתחילת התוכנית עשיתי לולאה שתפתח את הקבצים תתחיל מ runer0 עד שתיתקע וזה בעצם ה משתנה run_num.

הלולאת for הראשונה פה היא בעצם לפתוח מבנים בזה אחר זה כמספר ה שליחים שלי.

עכשיו אני צריך לקרוא כל פעם שורה אחת מכל קובץ של כל השליחים (שם יש נתונים אם המשלוח הצליח ומה המספר משלוח)

לשים במבנה של השליחים שהוא ניראה כך.



typedef struct runs{
int order_id;
char status;
struct runs* next;
} runs;


אבל משום מה הנתונים לא נכנסים למקומות הרלוונטיים אחרי ה fscanf.




for(i=0;i<run_num;i++)//open struct for runners
{
if(!(temp_runs=(runs*)malloc(sizeof(runs))))
exit(1);
temp_runs->next=NULL;


if(!head_runs)
head_runs=temp_runs;
else{
now_run=head_runs;


while(now_run->next)
now_run=now_run->next;
now_run->next=temp_runs;
}
}


now_run=head_runs;
for(i=0;i<run_num;i++)
{
fscanf(runners[i],"%*[^0-9]%d%*[A-Za-z]%c%*[^}]%*c%*c%c",&run_ord,&now_run->status,&run_ord);
}

פורסם
  • מחבר

הסתדרתי חברים תודה רבה !

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים