![](/img/trans.png)
[英]for some reason my data isn't being added to my file with my c function
[英]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.