我已經寫了下面的代碼(作爲大學的ab分配的一部分),試圖將1 int保存到文本文件(使用fprintf)和一個類型爲Flight的結構數組一個.bin文件。看起來這兩個都是空的。我在程序開始時調用讀取,並在退出時或在選擇「保存」選項時進行寫入。讀取必須首先獲取int值,因爲它是有多少元素(因此需要讀取/寫入多少元素)的關鍵計數器。無法讀取和寫入文件C
我看了其他答案,甚至基於我的一些代碼,但是在閱讀和重新閱讀後,我仍然找不到解決方案,因此我發佈了一個新問題。
這是寫入部分,文件是flyC.txt(用於存儲計數器)和fly.bin來存儲結構數組。
void writeFlight(){
FILE * cpt;
if ((cpt = fopen("flyC.txt", "wb")) == NULL)
{
printf("ERROR: Flight Count File Could Not Be Opened/Written To \n");
}
fprintf(cpt, "%d", curFly);
FILE * fpt;
if ((fpt = fopen("fly.bin", "wb")) == NULL)
{
printf("ERROR: Flight File Could Not Be Opened/Written To \n");
}
fwrite(flyList, curFly * sizeof(struct Flight), 1, fpt);
fclose(fpt);
}
這裏是閱讀部分。
void readFlight(){
//First Read file with variable curFly
FILE * cpt;
if((cpt = fopen("flyC.txt", "rb")) == NULL)
{
printf("ERROR: Flight Count File Could Not Be Opened\n");
}
if (1 != fscanf(cpt, "%d", &curFly)){
printf("ERROR: Flight Count File Could Not Be Read\n");
}
fclose(cpt);
FILE * fpt;
if((fpt = fopen("fly.bin", "rb")) == NULL)
{
printf("ERROR: Flight File Could Not Be Opened/Read\n");
}
fread(flyList, sizeof(struct Flight) * curFly, 1, fpt);
fclose(fpt);
}
任何幫助表示讚賞!
如果您自己查看文件(即在記事本或類似文件中),他們是否有任何內容? (換句話說:是閱讀還是書寫問題?) – tabstop