c语言读取文件中的一条记录如何从文件中读取记录?

姓名 性别 年龄
王某某 男 20
李某某 女 35
林某某 男 30

    这里的记录一般说的是结构体,即保存了一组信息。

    将结构体写入文件可使用fwrite函数,原型:

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);

参数含义:

    (1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;

    (2)size:要写入内容的单字节数;

    (3)count:要进行写入size字节的数据项的个数;

    (4)stream:目标文件指针;

返回值:

    实际写入的数据项个数count。


注:文件需用二进制写的方式打开,即:

fout = fopen("file address", "wb");

    从文件中读取结构体信息,可使用fread函数,原型:

size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;

参数含义:

    (1)buffer:用于接收数据的内存地址

    (2)size:要读的每个数据项的字节数,单位是字节

    (3)count:要读count个数据项,每个数据项size个字节.

    (4)stream:输入流

 返回值:

    实际读取的元素个数。

注:文件需用二进制读的方式打开,即:

fin = fopen("file address", "rb");

    fwrite和fread都是单纯的写、读二进制数据,所以需要配合使用,以保证数据有效。用fwrite产生文件,之后配套的用fread来读取文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-06
将三个人的信息写入一个文本文件,如name.txt。

#include<stdio.h>
struct personal
{
char name[20];
char gender[10];
int age;
}per[3];

void main()
{
FILE *fp;
int i,j;
fp=fopen("name.txt","rt");
for( i=0;i<3;i++) //读取全部记录
fscanf(fp,"%s %s %d\n",&per[i].name,&per[i].gender,&per[i].age);
fclose(fp);
j=1; //输出中间人信息
printf("%s %s %d\n",per[j].name,per[j].gender,per[j].age);
}本回答被提问者采纳
相似回答