פורסם 2008 בדצמבר 1416 שנים שלום,מישהו יודע למה זה מדפיס שורה אחרונה פעמיים?תודה#include <stdio.h>// functions fwrite(), fread() && fseek()struct studentData { char id[9]; char name[30]; char phone[11];};void main(){ FILE *mf; struct studentData stD1= {"123456","Bill","052345678"}; struct studentData stD2= {"321654","Jonny","052987654"}; struct studentData stD3= {"987456","Hillary","0545241637"}; struct studentData temp; if((mf=fopen("studentData.dt","w+b"))==NULL) printf("\n Error open file!!"); else { fwrite(&stD1, sizeof(struct studentData),1,mf); fwrite(&stD2, sizeof(struct studentData),1,mf); fclose(mf); } mf=fopen("studentData.dt","r+b"); fseek (mf,0,SEEK_SET); while (!feof(mf)) { fread(&temp,sizeof(struct studentData),1,mf); puts(temp.id); puts(temp.name); puts(temp.phone); }}
פורסם 2008 בדצמבר 1516 שנים feof לא מחזיר false מיד כשאתה מגיע לסוף הקובץ, אלא רק אחרי שאתה מנסה לקרוא תו כשאתה כבר בסוף הקובץ.אתה צריך לבדוק את ה-feof אחרי שאתה עושה fread, או לחילופין לבדוק אם fread הצליח לקרוא משהו (באמצעות ערך ההחזרה שלו).
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.