아래 코드에서는 파일을 올바르게 작성하고 있습니다.fwrite가 왜 계속 실패하는지 계속 하시겠습니까?
if(fread(inputFloats, sizeof(float), LENGTH, binaryFile) < LENGTH)
{
fprintf(stderr, "Problem reading some or all data from %s\n\n", binaryFileName);
return EXIT_FAILURE;
}
아무도 내가 여기에 잘못했던 것을 볼 수 있습니까 : 나는
내 프로그램이 항상 if 문을 유발 끝 그러나 진 ÍÌ[email protected]@ÍÌÜ@ffFAßOeA^@^@bBf6zE33äCff<83>BÍ̦B
의 스트림을 볼 floats.dat 나는 파일에서 볼 때? 아래의 전체 코드. 파일을 열 때 바이너리 모드를 지정해야합니다 있도록
#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;
}
는 읽기가 별도의 파일 위치인가 같은 파일에 글을 쓰고 싶습니까? fread가 방금 쓴 것보다 더 많은 수레를 읽으 려하지 않으면. 이 경우'rewind (binaryFile)'을 사용하십시오. – LumpN