【发布时间】:2020-07-09 00:40:39
【问题描述】:
当我开始重新插入文件内容并保存新文件时,我的 c 程序出现了这个问题。它在 while 循环中失败,如果我要从中重新插入一些内容,我不明白为什么会这样。
这是我的代码: '''
void init(){
char pn[30],pd[30],pp[30];
if ((flptr = fopen("MASTER.dat","r+")) == NULL) {
printf("Couldnt Get Cred");
return;
}
fscanf(flptr,"%s %s %s",pn,pd,pp);
while(!feof(flptr)){
r = (struct Records *) malloc(sizeof(struct Records));
int fr = fscanf(flptr,"%s %s %f",r->PartNum,r->PartDesc, &r->PartPrice);
if(fr == EOF){
printf("HERE");
break;
}
if(head == NULL){
head = r;
}
else{
tail->next = r;
}
tail = r;
}
fclose(flptr);
}
void put(){
if ((flptr = fopen("MASTER.dat","r")) == NULL) {
printf("Couldnt Get Cred");
return;
}
r = head;
fprintf(flptr,"PartNumber PartDescription PartPrice\n");
while (r != NULL){
fprintf(flptr,"%s %s %f\n", r->PartNum, r->PartDesc, r->PartPrice);
r = r->next;
}
fprintf(flptr,"Changes SAVED.");
fclose(flptr);
}
【问题讨论】:
-
“失败”是什么意思?
标签: c file linked-list