当我们想要操作文件时,需要一个filename不是吗
这个filename使用char v[] 数组存储起来的
在文件名中 还应加入文件的路径,如E:/123.txt
好了,说完如何起文件名字后,再来说一下文件的具体操作吧
1 向文件中写数据
首先,写一个向文件中写数据的子函数
void save(char * name ,int n)
{
//对于数组做形参来讲,用指针进行操作
//数组名本身就是一种地址,诗意无需再加取地址符
}
剩下的就是套路了,你需要写一个指向FILE类型结构体的指针变量
首先 FILE* fp
再者用 fp = fopen(name,"wb") 的语句打开指定的文件 实际上,这一步也确定了我们创建了name为名字的文件
另外 wb代表只写 rb代表只读
记住套路句子if((fp=fopen(name,"wb"))==NULL)
{
cout<<"cannot open the file"<<endl;
exit(0); //包含在cstdlib函数中
}
上面完成了文件的创建和是否创建成功的判断,那么
如何向文件中传输数据呢这就要是要把你那里面的数据一组一组的写进去了
形参里面的int n 就是我们说的n组数据,用
for循环语句来分组把数据写进去是不错的选择
好了,现在直接上代码了
for (int I=0;i<n;i++){
if(fwrite(&score[i],sizeof(struct student_score),1,fp)!=1)
printf("file write error"); //套路来了 首先是调用fwrite写文件 它里面有四个参数 第一是要写的数据的地址
//第二个就是 所要传动那个数据的数据的大小
//第三个就是 1
//第四个就是 写入的那个的指针
}
最后不要忘记把写好的文件关掉哦 fclose(fp)
以上就是 创建文件以及写入文件的全部操作了
下面我们再说一下 如何将数据从文件中读出来,并且显示在屏幕上
void show(char *name ,int n)
这个就不赘述了
然后就是 if(fp = open(name ,"rb")==NULL)
//这个就是 只读的方式打开文件了
for(int i=0;i<n;i++){
fread(&score[i],sizeof(struct student_score),1,fp) 将数据的文件读入到相对应的数据结构的变量中去
printf(“%-10s%4d”,。。。) //讲文件中的数据形式输出出来
}