使用fread()读取多个记录

时间:2012-11-23 17:37:54

标签: c file-handling

以下是我将数据插入文件的代码

注意:我有一个名为record的结构

fwrite(&record, sizeof(record),1,fptr);

我在循环中使用上面的代码,输入多个记录。 现在,我有我的数据阅读程序:

do {
fread(&record, sizeof(record), 1, fptr);
printf("\nName: %s \nAddress: %s \nClass Level: %d \nTelepone: %ld",record.name, record.address, record.classlevel, record.telephone);
}while (feof(fptr));

但它只显示第一条记录。

我也尝试使用fseek(),如下所示:

do {
fread(&record, sizeof(record), 1, fptr);
printf("\nName: %s \nAddress: %s \nClass Level: %d \nTelepone: %ld",record.name, record.address, record.classlevel, record.telephone);
fseek(fptr,sizeof(record)+1, SEEK_SET);
}while (feof(fptr));

仍然没有用!!我正在尝试在C上做一个小项目,而这个文件处理只是让我感到紧张。

1 个答案:

答案 0 :(得分:4)

改变这个:

while (feof(fptr))

到此:

while (!feof(fptr))