fread、fwrite、fprintf、fscanf

来源:互联网 发布:淘宝店铺刷销量平台 编辑:程序博客网 时间:2024/06/04 19:01
size_t fwrite (const void* buffer, size_t size, size_t count, FILE* stream)

注意:这个函数以二进制形式对文件进行操作,不局限于文本文件
(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;
(2)size:要写入的每个数据项的字节数;
(3)count:要写入size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际写入文件的数据项个数,不等于count则可能发生错误。

eg.

struct Student{int no;char name[20];};FILE *fp;fp = fopen("dat.txt","w"));Student stu;stu.no = 1;stu.name = "zhangsan";fwrite(&stu, sizeof(Student), 1, fp);// 应返回1fclose(fp);


size_t  fread ( void * buffer, size_t  size, size_t  count, FILE * stream) ;
(1)buffer:是一个指针,是用于接收数据的内存地址;
(2)size:要读出的每个数据项的字节数;
(3)count:要读出的size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回从文件实际读出的数据项个数,不等于count则可能发生错误。

eg.

FILE *fp;fp = fopen("dat.txt","w"));int data[10];fread(buf, sizeof(int), 10, stream);fclose(fp);

int fprintf (FILE* stream, constchar* format, [argument])
(1)stream:文件指针;
(2)format:输出格式;
(3)[argument]:输入列表;
(4)返回写入文件的字符数,发生错误时返回负数

eg.

FILE *fp;fp = fopen("dat.txt", "w"));int i = 0, j = 0;fprintf(fp, "%d %d\n", i, j);fclose(fp);


int fscanf(FILE* stream,constchar* format,[argument...])
(1)stream:文件指针;
(2)format:输出格式;
(3)[argument]:出列表;
(4)返回从文件读出的参数个数
注:遇空格或换行读取结束

eg.

FILE* fp;char a[10];int b;double c;fscanf(fp , "%s %d %lf" , a , &b , &c);fclose(fp);

0 0