0

私はstudent.datファイルに書き込もうとしています.私の問題は、2回目に書き込んでいるときに最初のデータが消去されることです.助けてください.

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();
4

2 に答える 2

5

追加モードを試してください:

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

wmode overwrites file: "出力操作用に空のファイルを作成します。同じ名前のファイルが既に存在する場合、その内容は破棄され、ファイルは新しい空のファイルとして扱われます。"

于 2013-07-17T13:23:41.967 に答える
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
于 2013-07-17T13:23:52.197 に答える