fwrite()写入函数 (函数原型 ↓)
fwrite(const void * restrict ptr,size_t size,size_t nmemb,FILE * restrict fp);
ptr可接受任何类型(写入)————size字节数大小
nmemb写多少个size字节的数据项 ——fp文件指针类型
注意:完成一次fwrite(),必须关闭流fclose(fp),否则将不能正确显示内容.
———————————————
fread()读取函数 (函数原型 ↓)
fread(void * restrict ptr,size_t size,size_t nmemb,FILE * restrict fp);
ptr可接受任何类型(存储读取值)————size字节数大小
nmemb写多少个size字节的数据项 ——fp文件指针类型
注意:完成一次读操作fread()后,如果没有关闭流fclose(fp),则指针(FILE * fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出.
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *rp,*wp;
int k;
int p=0,m=0;
int val;
if((rp=fopen("name","rb"))==NULL)
{
puts("Open file error!");
exit(EXIT_FAILURE);
}
if((wp=fopen("names","wb"))==NULL)
{
puts("Open file error!");
exit(EXIT_FAILURE);
}
while((k=getc(rp))!=EOF)
{
if(fwrite(&k,sizeof(int),1,wp)!=1)
puts("file write error");
p++;
}
fflush(wp);
if(fclose(wp)!=0 && fclose(rp))
puts("File close error!");
if((wp=fopen("names","rb"))==NULL)
{
puts("Open file error!");
exit(EXIT_FAILURE);
}
while(m<p)
{
fread(&val,sizeof(int),1,wp);
putc(val,stdout);
m++;
}
if(fclose(wp)!=0)
puts("FILE close error!");
puts("");
puts("done!");
return 0;
}