我用vc++ 6.0寫了個c代碼,要打開檔案,當我還沒有創建那個檔案時,運行沒有錯,只是說找不到那個檔案。但當我創建了這個檔案,在運行就出現問題了
我的代碼是(打開檔案的這個)
BL *Creat()
{
BL *p,*q;
int j=1;
char ch[5]={"end"};
FILE *fp;
fp=fopen("busline.txt","r+");
if(fp==NULL)
{printf("不能打開此檔案!");
exit(0);
}
p=(BL *)malloc(sizeof(BL));
head=p;
q=p;
fscanf(fp,"%d",&(p->busnum));
do
{fscanf(fp,"%d %s",&(p->stop[j].num),p->stop[j].name);
j++;
}while(strcmp(p->stop[j-1].name,ch)==1);
while(!feof(fp))
{j=1;
p=(BL *)malloc(sizeof(BL));
q->next=p;
q=p;
fscanf(fp,"%d",&(p->busnum));
do
{fscanf(fp,"%d %s",&(p->stop[j].num),p->stop[j].name);
j++;
}while(strcmp(p->stop[j-1].name,ch)!=0);
}
q->next=NULL;
fclose(fp);
return head;
}
然后就出現了下面這兩個問題,
有時候是這樣
uj5u.com熱心網友回復:
設定斷點,單步除錯, do while 是否回存在越界的可能?uj5u.com熱心網友回復:
還是除錯一下,馬上就知道問題了。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/142560.html
標籤:基礎類
上一篇:把一檔案按行存入另一個檔案
