C语言 将数据设置为节点 Ptr 而不覆盖



好的,所以我想知道如何设置一个数据结构,该结构在结构中具有其他类型的数据,例如道路或城市,但它没有结构数据类型的数组。

   Struct data
    {
     Char city[MAX_LENGTH];
     Char road[MAX_LENGTH];
     }

主要: 数据数据; 只是不想改名我知道如何初始化节点插入节点等...但是当涉及到添加更多信息时,我不明白... 当我读取二进制文件时。它读取所述结构,我想在不覆盖它的情况下向二进制文件添加更多内容。而且我不确定如何使用节点添加它。有什么想法吗?

基本描述:我需要补充。一个城市和一条道路,不覆盖二进制文件中的内容。

你似乎在大写方面遇到了问题,这在 C 中实际上很重要:

#define MAX_LENGTH 50
struct data
{
  char city[MAX_LENGTH];
  char road[MAX_LENGTH];
};
int main()
{
  struct data data;
  return 0;
}

您可以写入二进制文件而不覆盖它,方法是使用以下任一方式打开它:

FILE *fp  = fopen(filename, "r+b");
FILE *fp2 = fopen(filename, "ab");  // "a+b" will also work

对于第一个版本,您的文件指针将位于文件的开头,因此您可能需要查找要写入的任何位置:

fseek(fp, 0, SEEK_END);

在第二个版本中,文件指针将位于文件的最后,任何写入都将附加到文件末尾。

PS - 上述模式中的"b"表示该文件是二进制的,但通常对许多系统没有影响(即 - 悄悄地忽略)。

最新更新