【发布时间】:2014-01-05 16:26:59
【问题描述】:
我编写了以下代码(作为大学 ab 作业的一部分),试图将 1 个 int 保存到文本文件(使用 fprintf)和将 Flight 类型的结构数组保存到 .bin 文件。似乎两者都是空的。我在程序开始时调用读取并在退出或选择保存选项时调用写入。读取必须首先获取 int 值,因为它是有多少元素(因此需要读取/写入多少元素)的关键计数器。
我查看了其他答案,甚至基于我的一些代码,但是在阅读和重新阅读之后,我仍然找不到解决方案,因此我发布了一个新问题。
这是写入部分,文件是 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);
}
感谢任何帮助!
【问题讨论】:
-
如果您自己查看文件(即在记事本或类似文件中),它们是否有任何内容? (换句话说:问题是阅读还是写作?)