fichier est une variable de type FILE* alors que "fichier" est une chaine de caractère qui ne veut rien dire.
Utilise :
fclose(fichier); pour fermer le fichier représenté par la variable fichier. (et non pas fclose("fichier");).
D´autre part, c´est sur que si tu mets :
if ( fichier == NULL )
{
return 0;
}
juste après:
FILE* fichier=NULL;
faut pas t´étonner de ce que le programme se ferme : tu lui dit d´abord fichier vaut maintenant 0, et juste après tu lui dit : si fichier vaut 0 (évidemment, tu viens de lui dire de valoir 0) quitte. donc bien sur, il quitte.
Par contre, avex "r+" dans la focntion fopen, si le fichier n´existe pas, la fonction rate. Utilise "w+" pour créer le fichier. Mais attention, là, s´il existe, il sera détruit. (il y a un truc panaché, c´est "a+", mais là le pointeur est à la fin du fichier par défaut, donc ce n´est pas terrible.