Powiel możliwe:
“while(!feof(file))” is always wrongC czyta pliki binarne
Jeśli piszę tablicę do pliku wyjściowego i zamknij plik, a następnie otwórz ponownie plik i przeczytać wszystko do końca -of-plik zostanie osiągnięty, chociaż plik zawiera tylko 4 liczby, program odczyta i wydrukuje 5 liczb, dlaczego?
wyjście Program:
a[0] = 4
a[1] = 7
a[2] = 12
a[3] = 34
a[4] = 34
save.bin (w edytorze hex)
04000000 07000000 0C000000 22000000
#include <stdio.h>
#include <stdlib.h>
#define path "save.bin"
int main(void)
{
FILE *f=NULL;
int a[]={4,7,12,34},i,n=4,k;
f=fopen(path,"wb");
if(f==NULL)
{
perror("Error");
exit(1);
}
for(i=0;i<n;i++) // or I could use fwrite(a,sizeof(int),n,f);
fwrite(&a[i],sizeof(int),1,f);
fclose(f);
f=fopen(path,"rb");
if(f==NULL)
{
perror("Error");
exit(1);
}
i=0;
while(!feof(f))
{
fread(&k,sizeof(int),1,f);
printf("a[%d] = %d\n",i,k);
i++;
}
printf("\n");
fclose(f);
return 0;
}
Dziękuję bardzo !!! – Cristi