簡體   English   中英

存儲到我的文件中的結構沒有被覆蓋(C)

[英]The struct that is stored to my file isn't being Overwritten ( C )

#include <stdio.h>
#include <string.h>

typedef struct batch
{
  int month;
  int day;
  int qty;
  float item_cost;
  int batch_num;
} BATCH;

struct stock
{
  char item_name[50];
  int t_qty;
  float t_item_cost;
  int item_code;
  BATCH batch[10];
  int last_batch_num;
  float price_for_one;
  float price;
};

int main()
{
   FILE *filepointer;
   filepointer = fopen("stocklist.txt", "r+");

   struct stock loop;

   while(fread(&loop, sizeof(struct stock), 1, filepointer))
   {
       printf("%s\n", loop.item_name);
       strcpy(loop.item_name, "Jerb");
       printf("%s\n", loop.item_name);

       fwrite(&loop, sizeof(struct stock), 1, filepointer);
    }
}

有一個文本文件,其item_name中的名稱為Huggies,因此每次運行程序時,都應將Huggies的名稱更改為“ Jerb”,但似乎對文件和舊的item_name無效。在文件中保持相同。

我以為如果使用“ r +”模式,它將覆蓋文件中的數據,但事實並非如此。

請幫助!!

嘗試在循環內執行fflush()並在退出前進行fclose。 調用fwrite()時,將輸出寫入緩沖區,直到生成4kb的數據為止,並僅在達到4kb或調用fflush / fclose時才將其刷新到文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM