-1

我想知道是否可以使用frwite. 让我更准确地说,我打开一个文件,fopen然后我用 write 向它写入一些数据。就在关闭文件之前,我想写一些关于文件内容的摘要。我认为放置此摘要的最佳位置是在文件的开头。因此,当我稍后打开文件时,我可以先阅读摘要,然后再阅读数据。

实际上,我把摘要放在哪里并不重要,只要我在打开文件时可以先阅读它。

4

2 回答 2

0

如果您询问是否可以使用fwrite(),putc()fprintf()在非空文件的开头插入信息,答案是否定的,您不能这样做。

您可以覆盖数据或附加数据。

如果要插入,则需要检查您的操作系统 API 以查看是否有特殊功能,如果没有,则需要创建另一个文件,将摘要写入其中,然后写入原始内容文件。另一种选择是手动移动数据以在文件开头释放足够的空间,以便在此处写入摘要。

如果您真的需要,您可以向后阅读文本文件。

于 2013-02-26T09:10:36.973 回答
0

无法在文件之前插入数据(不重写整个文件)。

可以在文件中的任何位置覆盖某些字节为了实现您的需求,原始文件必须保留一些字节(可能在开始时)以供以后覆盖。

FILE *f = fopen ("thefile", "r+");  // opens for read and write, positioned at beginning
if (!f)  error_message();
size_t n = fwrite ("newdata", 1, 7, f);  // overwrite first 7 bytes
if (n != 7)  error_message();
fclose (f);
于 2013-02-26T09:15:22.747 回答