如何讀取二進制文件並將其值分配給結構?每個結構及其內容都將被寫入一個csv文件。將文件的字節讀入結構中
我有這個data file,這是一個struct product
條目列表。
下面是一個.h文件的Product
結構:
struct product {
char code[15];
char name[50];
short int quantity;
double price;
}
typedef struct product *Product;
這裏是我怎樣,我想讀每一行到產品結構,並將其寫入到CSV文件:
File *fp;
File *outFile;
fp = fopen("products.dat", "rb");
outFile = fopen("allproducts.csv", "w");
Product p;
while (fread(p, sizeof(Product), 1, fp) == 1) {
fwrite(p->code, sizeof(p->code), 1, outFile);
}
我不認爲我正在讀取文件,因爲當我嘗試寫入文件時,我所得到的只是csv文件中的一個框中的問號。
使用'fprintf'而不是'fwrite'。 – BLUEPIXY
@BLUEPIXY謝謝你的建議。但是,我仍然在文件 – Jasmine
中得到相同的錯誤輸出。'''p'是指針類型。你沒有分配它。和'sizeof(Product)'是錯誤的。 – BLUEPIXY