Ok ho modificato il programma. Riesco a visualizzare tutti gli utenti. Ho cambiato il modo in cui venivano scritti i dati sul file, e ho usato la fgets al posto della fscanf perchè dava il classico problema delle stringhe con uno spazio (nel caso per esempio di un cognome di due parole). Il problema è che non so come fare a cercare una determinata stringa all'interno di un file. Se voglio cercare un nome, come faccio a dire al programma di cercarla? Ho trovato su internet il comando strcmp, ma con gli esempi che c'erano non ho capito bene come applicarla.. Qualcuno sa darmi una mano?

codice:
#include <stdio.h>
#include <stdlib.h>
#define userfile "users.txt"

typedef struct{
        char nome[30];
        char cognome[30];
        char citta[30];
        char provincia[30];
        int eta;
} user;

int main(void){
    FILE *fp;
    user u;
    int scelta;
    if(!(fp=fopen(userfile, "a"))){
                            printf("Errore.\n");
                            exit(1);                        
    }
    printf("Database.\n\nInserisci il numero relativo all'operazione che vuoi effettuare:\n");
    printf("1 - Inserisci Utente\n");
    printf("2 - Modifica Utente\n");
    printf("3 - Cerca Utente\n");
    printf("4 - Elimina Utente\n");
    printf("5 - Esci\n\n");
    scanf("%d", &scelta);
    fflush(stdin);
    if (scelta==1){
                   system("cls");
                   printf("Inserimento utente nel database.\n\n");
                   puts("Nome:");
                   fgets(u.nome, 30, stdin);
                   fflush(stdin);
                   puts("\nCognome:");
                   fgets(u.cognome, 30, stdin);
                   fflush(stdin);
                   puts("\nCitta':");
                   fgets(u.citta, 30, stdin);
                   fflush(stdin);
                   puts("\nProvincia:");
                   fgets(u.provincia, 30, stdin);
                   fflush(stdin);
                   printf("\nEta':\n");
                   scanf("%d", &u.eta);
                   // Scrivo i dati su file
                   fprintf(fp, "%s%s%s%s%d\n\n", u.nome, u.cognome, u.citta, u.provincia, u.eta);
                   printf("\n\nDati inseriti con successo.\n");
                   fclose(fp);
                   system("cls");
                   main();       
    } else if (scelta==3){
           system("cls");
           fp=fopen(userfile, "r");
           if(fp){
           while(!feof(fp)){
                            fgets(u.nome, 30, fp);
                            fgets(u.cognome, 30, fp);
                            fgets(u.citta, 30, fp);
                            fgets(u.provincia, 30, fp);
                            fscanf(fp, "%d\n", &u.eta);
                            printf("Nome: %sCognome: %sCitta': %sProvincia: %sEta': %d\n\n", u.nome, u.cognome, u.citta, u.provincia, u.eta);                
           } 
           fclose(fp);
           system("PAUSE");
           } else {
                  printf("Errore durante l'apertura del file.\n");       
           }
    }
}