У меня возникли проблемы с программой, которая использует fwrite
и fread -> fread (void*, size_t, size_t, FILE*);
, когда множество секунд size_t
как любое число, отличное от нуля, не работает. Вот код; это не работает таким образом, если кто-то может помочь, я был бы признателен.Проблемы с fread и fwrite
P.S .: Если я подстановлю sc на функцию read
и write
, она работает, но не так, как ожидалось.
#include<stdio.h>
#include<stdlib.h>
#define TAM 10
#define sc 5
typedef struct str_score{
float scr;
char nome[TAM];
}score;
int main(){
FILE *arq;
int x;
score a[sc], i={0.00,"-empty-"};
if ((fopen("highscore.bin", "wb+"))==NULL){
perror("Erro na abertura do arquivo\n");
return 1;
}
fwrite(&i,sizeof(score), sc, arq);
fread(a ,sizeof(score), sc, arq);
for (x=0;x<sc;x++){
printf("%s %.2f", a[x].nome,a[x].scr);
}
return 0;
}
Это просто, что ваш компилятор наказывает вас за форматирование вашего кода, испуская багги код машины. –
(Серьезно, отформатируйте/отпечатайте свой код и проверьте возвращаемое значение 'fread()' и 'fwrite()'.) –