fwrite(buffer, size, count,fp):以二进制的形式向指定的文件中写入若干数据项(由count决定),返回实际写入的数据项数目,各参数含义如下:
buffer:一个存储区的起始地址,以该地址开始的存储区的数据即是保存到文件中的数据,可以是数组或指针类型;
size:单个数据项的大小(单位:字节);
count:数据项数量;
fp:FILE类型指针,该指针对应的文件即是数据保存的“目的地”;
#include <stdio.h>#include <stdlib.h>int main(){struct Student{char name [10];int num;int age;char addr [30];} stud [10];FILE * output = fopen("D:\\stud.dat","wb");//生成的stud.dat文件无法用记事本打开,打开后显示“乱码”。if(output == NULL){printf("无法打开文件");exit(0);}for(int i=0;i<10;++i){scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);fwrite(&stud[i],sizeof(struct Student),1,output);}fclose(output);return 0;}
fread(buffer, size, count,fp):以二进制的形式从指定的文件中读取若干数据项(由count决定),调用成功返回实际读取到的数据项个数(小于或等于count),不成功或读到文件末尾返回 0,各参数含义如下:
buffer:一个存储区的起始地址,以该地址开始的存储区用于保存从文件中读取出来的数据,可以是数组或指针类型;
size:单个数据项的大小(单位:字节);
count:数据项数量;
fp:FILE类型指针,该指针对应的文件即是数据的“来源地”;
#include <stdio.h>#include <stdlib.h>int main(){struct Student{char name [10];int num;int age;char addr [30];} stud [10];FILE * input = fopen("D:\\stud.dat","rb");if(input == NULL){printf("无法打开文件");exit(0);}for(int i=0;i<10;++i){fread(&stud[i],sizeof(struct Student),1/*读取1个数据项*/,input);printf("%s %d %d %s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);}fclose(input);return 0;}
#include <stdio.h>#include <stdlib.h>int main(){struct Student{char name [10];int num;int age;char addr [30];} stud [5];FILE * input = fopen("D:\\stud.dat","rb");if(input == NULL){printf("无法打开文件");exit(0);}int validCount;//实际读取多少数据项while((validCount = fread(stud,sizeof(struct Student),5/*最多读取5个数据项*/,input))!=0){for(int i=0;i<validCount;++i){printf("%s %d %d %s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);}}fclose(input);return 0;
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <io.h>
void main(){
FILE *fp=NULL;
FILE *frp=NULL;
int handle;
char fileUrl[50]="d:\\a.txt";
char *c = "licheng";
//fopen方法第二个参数为使用文件的方式
//"rt"只读打开一个文本文件,只允许读数据
//"wt"只写打开或建立一个文本文件,只允许写数据
//"at"追加打开一个文本文件,并在文件末尾写数据
//"rb"只读打开一个二进制文件,只允许读数据
//"wb"只写打开或建立一个二进制文件,只允许写数据
//"ab"追加打开一个二进制文件,并在文件末尾写数据
//"rt+"读写打开一个文本文件,允许读和写
//"wt+"读写打开或建立一个文本文件,允许读写
//"at+"读写打开一个文本文件,允许读,或在文件末追加数据
//"rb+"读写打开一个二进制文件,允许读和写
//"wb+"读写打开或建立一个二进制文件,允许读和写
//"ab+"读写打开一个二进制文件,允许读,或在文件末追加数据
fp = fopen(fileUrl,"w");
//写入文件方法fwrite(const void*buffer,size_t size,size_t count,FILE*stream);
//(1)buffer:是一个指针,对fwrite来说,是要输出数据的地址。
//(2)size:要写入的字节数;
//(3)count:要进行写入size字节的数据项的个数;
//(4)stream:目标文件指针。
fwrite(c,strlen(c),1,fp);
fclose(fp);
//读取文件全部内容
char ch;
frp = fopen("d:\\a.txt","r");
//feof方法判断是否到了文件结尾,配合fgetc方法一起使用
while(!feof(frp)){
ch = fgetc(frp);
putchar(ch);
}
system("pause");
}