我将结构保存到 .dat 文件中。假设我必须编辑一个特定的结构,我将如何进行?我做了以下事情:
ptFile = fopen("funcionarios.dat", "ab+");
fseek(ptFile, index*sizeof(strFunc), SEEK_SET); //places the pointer at the struct I want
fwrite(&newStruct, sizeof(strFunc), 1, ptFile); //adds the new struct
所以,如你所见,我想用 newStruct 更新我的文件。
fwrite 函数返回 1,但它不会替换我想要的行(也不会替换相邻行,以防我使用丢失的索引),并且它不会向文件添加新结构。它根本什么都不做!
有任何想法吗?
我通过读取所有结构、用我的 newStruct 替换 index-struct 并用所有结构写入文件来做到这一点,但我正在寻找一种更好的方法来做到这一点。
提前致谢。