【发布时间】:2012-06-13 23:32:09
【问题描述】:
我正在将结构保存到 .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 并用所有结构写入文件来做到这一点,但我正在寻找一种更好的方法来做到这一点。
提前致谢。
【问题讨论】:
-
使用 W+ 不会删除整个文件吗?
标签: c file function edit fwrite