Scusami ancora, ho un'altro problema.
Quando creo un nuovo file, cancellando quello precedente, va' tutto bene,
invece quando voglio accodare al file altri "alunni" mi da errore di Windows dopo che ho premuto INVIO per l'ultimo inserimmento (cioe' quando inserisco l'anno e premo invio).
codice:
# include <iostream>
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
using namespace std;
typedef char   Eta[8];
typedef char   Sezione[10];
typedef char   Anno[8];
typedef char   Nome[20];

struct alunno {
        Nome       nome;
        Nome       cognome;
        Eta        eta;
        Sezione    sezione;
        Anno       anno;
};
struct alunno lettura_stdin();
void scrittura_file(struct alunno a, FILE* w);

int main(){
    
int ris;
struct alunno a[100];
FILE *w, *r, *file;

ris=0;
                    
while (ris!=3) 
      {
      printf("1) Accoda l'alunno (Accodando l'alunno agli alunni gia' inseriti\n");
      printf("2) Inizia nuovo elenco (Cancellando gli alunni precedenti\n");
      printf("3) Esci\n");
      scanf("%d",&ris);
      
      if (ris==1)
                 {
                 r = fopen("test_2.txt","r");                                                          
                 a[0]=lettura_stdin();
                 scrittura_file(a[0],w);
                 }   
      if (ris==2)
                 {
                 w = fopen("test_2.txt","w");     
                 a[0]=lettura_stdin();
                 scrittura_file(a[0],w);
                 } 
      }        
      
      printf ("Sei uscito dal programma\n");
      fclose(w);
      system("pause");
}

      struct alunno lettura_stdin(){
          struct alunno a;
          printf("Inserisci il nome dell'alunno\n");
          scanf("%s",&a.nome);
          printf("Inserisci il cognome dell'alunno\n");
          scanf("%s",&a.cognome);
          printf("Inserisci l'eta dell'alunno\n");
          scanf("%s",&a.eta);
          printf("Inserisci la sezione dell'alunno\n");
          scanf("%s",&a.sezione);
          printf("Inserisci l'anno dell'alunno\n");
          scanf("%s",&a.anno);
          return a;
      }
      void scrittura_file( struct alunno a,  FILE* w){
             fprintf(w, "%-20s",a.nome);                                      
             fprintf(w, "%-20s",a.cognome);      
             fprintf(w, "%-8s",a.eta);
             fprintf(w, "%-10s",a.sezione);
             fprintf(w, "%-8s\n",a.anno);
             fflush(w);
      }