nessun errore ! il programma va, fa ciò che deve fare ma mi restutuisce il file di testo sempre uguale a prima dell'esecuzione !! il codice è troppo lungo, è un gioco ! Ti posto la funzione un po' piu' completa e come l'ho modificata ora (continua a non fare ciò che dovrebbe fare) :

topten = fopen("classifica.txt","r+");
system("cls");
if(topten == NULL)
printf("\n\n\n Si e' verificato un errore nell'apertura del file classifica.txt !\n Controllare che il file non sia stato cancellato o rinomnato !");
else{

fscanf(topten, "%s %d", nome, &soldi);
while(!feof(topten)){

if(montepremi > soldi){
system("pause");
fprintf(topten, "CIAO\n%s %d\n", nickname, montepremi);
fclose(topten);
return 0;
}
fscanf(topten, "%s%d", nome, &soldi);
}
fclose(topten);
system("pause");

}

dove nome e soldi sono sempre rispeettimante la stringa e l'intero che prende da file, mentre montepremi e nicknome sono l'intero e la stringa che voglios crivere