0

fwriteandを使用するプログラムで問題が発生しています。fread -> fread (void*, size_t, size_t, FILE*);size_tをゼロ以外の数値として設定すると、機能しません。コードは次のとおりです。このようには機能しません。誰かが助けてくれれば幸いです。

PS:その sc をreadandwrite関数に置き換えると、機能しますが、期待どおりには機能しません。

#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;

}
4

1 に答える 1