Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    3

    [C] Scrivere su file in determinata posizione

    Salve a tutti , mi serve una mano con la gestione dei file !

    In pratica ho creato un piccolo giochino in c senza nessun problema, ma ora che dovrei impostare come gestire la classifica del gioco sto iniziando ad avere qualche grattacapo

    In pratica ho un file di testo .txt in cui sono salvati i migliori punteggi e un nicknome di 3 caratteri associati, qualcosa del genere diciamo :
    AAA 1000
    CCA 800
    ZZZ 500
    etc...

    ora nel momento che un giocatore ha effettuato un determinato punteggio nel mio gioco dovrei comparare il punteggio nella classifica con quello del mio player, e ho risolto facilmente con questa istruzione:

    char nome[4];
    int soldi;
    FILE *topten;

    fscanf( topten, "%s%d", nome, &soldi);
    while(!feof(topten)){
    printf("%s%d\n\n", nome, soldi);
    if(montepremi > soldi)
    fprintf(topten, "%s%d", nick, montepremi) ;
    fscanf(topten, "%s%d", nome, &soldi);

    dove montepremi è il valore che ha realizzato l'utente che ha giocato, nick il suo nome !

    Il ciclo funziona, tramite il printf vedo che legge correttamente i valori , ma il fprintf non funziona, ovvero concluso il ciclo e il programma quando apro il file .txt non noto nessun cambiamento ! Dove sbaglio ??
    Il file .txt lo apro così :

    topten = fopen("classifica.txt","r+"); (ho provato anche con a+ ma non cambia niente) !

    Vi ringrazio per eventuali chiarimenti

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    magari se posti tutto il codice

    il compilatore non ti da qualche errore??
    Tecnologia

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    3
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.