fwrite
andを使用するプログラムで問題が発生しています。fread -> fread (void*, size_t, size_t, FILE*);
秒size_t
をゼロ以外の数値として設定すると、機能しません。コードは次のとおりです。このようには機能しません。誰かが助けてくれれば幸いです。
PS:その sc をread
andwrite
関数に置き換えると、機能しますが、期待どおりには機能しません。
#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;
}