写入清除旧数据的dat文件

时间:2013-07-17 13:22:22

标签: c

我正在尝试写入student.dat文件。我的问题是当我第二次写第一次我的第一个数据正在清理时。请帮助我

student st; 
FILE* fp = fopen("d:\\student.dat", "w");
//fseek(fp,0,SEEK_SET);   
st.getdata();      
fwrite((char *) &st,sizeof(student),1,fp);
fclose(fp);
printf("\n\nStudent record Has Been Created ");
fflush(stdin);   
getch();

2 个答案:

答案 0 :(得分:5)

尝试追加模式:

FILE* fp = fopen("d:\\student.dat", "a");

w模式覆盖文件:“为输出操作创建一个空文件。如果已存在同名文件,则丢弃其内容,并将该文件视为新的空文件。”

答案 1 :(得分:2)

http://www.cplusplus.com/reference/cstdio/fopen/

FILE* fp = fopen("d:\\student.dat", "w");

应该是

FILE* fp = fopen("d:\\student.dat", "a"); // a for append