Salve a tutti.
Ho appena incominciato a studiare i file in c ed ho una domanda alla quale il libro non mi riesce a rispondere  
io ho buttato giu questo semplice programma che mi richiedeva di leggere da file e inserirla in un array:
nt main ()
{
    char buf[]="ciaomarco";
    char ass[10];
    int n;
    FILE *fp;
    fp=fopen("carattere.txt","w");
    if(fp==NULL)
        printf("errore");
    fwrite(buf,sizeof(char),10,fp);
    fclose(fp);
    fp=fopen("carattere.txt","r");
    n=fread(ass,1,10,fp);
    printf("carattere: %s",ass);
    printf("%d caratteri",n);
    fclose(fp);
}
ok cosi mi funziona ma prima avevo fatto una variente di questo codice che era cosi:
nt main ()
{
    char buf[]="ciaomarco";
    char ass[10];
    int n;
    FILE *fp;
    fp=fopen("carattere.txt","w+");
    if(fp==NULL)
        printf("errore");
    fwrite(buf,sizeof(char),10,fp);
    n=fread(ass,1,10,fp);
    printf("carattere: %s",ass);
    printf("%d caratteri",n);
    fclose(fp);
}
E questo non funzionava, non mi scriveva ass a video, perchè? se io ho dato come operatore di file "w+" non dovrei sia scriverlo che leggerlo?
grazie a tutti...