fwrite一直失败,不确定为什么
|
据我所知,在下面的代码中,文件已正确写入。当我查看文件floats.dat时,我看到此二进制流ѭ0stream
但是我的程序总是最终触发以下if语句:
if(fread(inputFloats, sizeof(float), LENGTH, binaryFile) < LENGTH)
{
fprintf(stderr, \"Problem reading some or all data from %s\\n\\n\", binaryFileName);
return EXIT_FAILURE;
}
有人在这里看到我做错了什么吗?完整代码如下。
#include <stdlib.h>
#include <stdio.h>
#define LENGTH 10
int main(void)
{
FILE *binaryFile, *textFile;
char *binaryFileName = \"floats.dat\", *textFileName = \"floats.txt\";
float floats[LENGTH] = {3.2, 3.55, 6.9, 12.4, 14.332, 56.5, 4003.4, 456.4, 65.7, 83.4};
float inputFloats[LENGTH];
int i;
if((binaryFile = fopen(binaryFileName, \"r+\")) == NULL)
{
fprintf(stderr, \"Problem opening %s\", binaryFileName);
}
if(fwrite(floats, sizeof(float), LENGTH, binaryFile) < LENGTH)
{
fprintf(stderr, \"Problem writing some or all data to %s\\n\", binaryFileName);
return EXIT_FAILURE;
}
printf(\"DATA WRITTEN SUCCESSFULLY\\n\");
if(fread(inputFloats, sizeof(float), LENGTH, binaryFile) < LENGTH)
{
fprintf(stderr, \"Problem reading some or all data from %s\\n\\n\", binaryFileName);
return EXIT_FAILURE;
}
for(i = 0; i < LENGTH; i++)
{
printf(\"float[%d] = %f\\n\", i, floats[i]);
}
return EXIT_SUCCESS;
}
没有找到相关结果
已邀请:
4 个回复
辩谷变充
代替
写入后,需要“ 5”来“倒回”文件。
也可用于这种情况-
可让您将读取/写入指针放置在所需的任何位置。
青董据零
结构记录了文件当前指向的位置。由于您刚刚写入
,因此文件指针位于所写入内容的末尾。 因此,在阅读之前,您需要使用
倒带文件。
替秀宝
长拳
将指针移至文件的开头。 请避免这种情况:
并喜欢这样: