1.rread和fwrite函数
数据块I/O fread与fwrite
函数原型:
size_t fead(void *buffer, size_t size, size_t, count, FILE *pf)
size_t frite(void *buffer, size_t size, size_t count, FILE *pf)
功能:读写数据块(将内存的内容直接写入磁盘)
返回值:成功,返回读/写的块数,出错或文件尾,返回0.
参数含义:
buffer 指向要输入/输出数据块首地址指针。
size 每个要读/写的数据块的大小。
count 要读/写的数据块的个数
fp 要读/写的文件指针
typedef unsigned size_t
fread和fwrite一般用于二进制文件的输入/输出
2. 文本与二进制文件之间的区别是\n和\r之间的转换。
3.例子
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include <stdlib.h> void main1() { int a[100]; printf("%p", a); for (int i = 0; i < 100;i++) { ; printf("\n%d", a[i] = i); } FILE *pf = fopen("C:\\1.bin", "r"); int num=fwrite(a, sizeof(int), 99, pf);//第一个内存首地址,第二个元素大小,第三个个数 printf("fwrite return =%d", num);//返回写入成功的个数.失败返回0 fclose(pf); system("pause"); } void write() { int a[100]; for (int i = 0; i < 100; i++) { printf("\n%d", a[i] = i); } FILE *pf = fopen("C:\\1.bin", "wb"); int num = fwrite(a, sizeof(int), 100, pf);//第一个内存首地址,第二个元素大小,第三个个数 printf("fwrite return =%d", num);//返回写入成功的个数.失败返回0 fclose(pf); } void read() { void *p = malloc(400); printf("%p\n", p); FILE *pf = fopen("C:\\1.bin", "rb"); int num= fread(p, 4, 100, pf);//第一个内存首地址,第二个元素大小,第三个个数 printf("fread return =%d", num);//返回读取成功个数 fclose(pf); } void main() { read(); system("pause"); }
时间: 2024-10-12 03:34:59