c语言文件打开模式应该怎样用?
我想达到的效果:1.没有data文件时创建,有这个同名文件时可以对它追加数据保存.
代码:(函数)
void save(int te,int cl) //对保存函数进行定义
{
struct score s[2][3][20];
FILE *fp;
if((fopen("data","ab"))==NULL)
{
printf("不能打开数据库\n");//请问这行应该怎么改?
return;
}
for(int i=0;i<20;i++)
fwrite(&s[te][cl][i],sizeof(struct score),1,fp);
fclose(fp);
}
2.可读取并修改.
void read() //对读取函数进行定义
{
struct score s[2][3][20];
FILE *fp;
int i,j,k;
fp=fopen("data","rb");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
for(k=0;k<20;k++)
fread(&s[i][j][k],sizeof(struct score),1,fp);
fclose(fp);
} //请问是否正确?
注:turb C环境,由于全部代码很长,我只取了其中的一部分.我对C语言中的文件操作还有些不太懂,所以求助于大家.
我想达到的目的:能按需�%
我在fopen时如果有同名文件,在进行修改一些数据时不会把原来的数据删除掉吧?
我的目的是能按要求完成对data数据的录入、修改...(比如我打开一个TXT文件,改一些数据后保存;而不是删除原来的数据,只保存改后的数据)
所以我在打开时应该选择"r+",保存时应该选择"w+",对吧?