Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156

    [C] operazioni su file -> ciclo infinito

    premessa: spero in qualche anima pia che abbia voglia di perdere 5 minuti per aiutarmi.

    ho iniziato ad operare sui file in C.
    lascio da parte le 2000-3000 domande che avrei da fare e vengo subito al dunque.

    ho scritto questo programmino che dovrebbe leggere e scrivere da file aggiornando i record dei vari clienti.

    ovviamente l'implementazione poteva essere fatta molto meglio (per esempio usare file ad accesso casuale invece che utilizzare file ad accesso sequenziale come ho fatto io)

    ma era appunto un'esercitazione e mi serviva per capire meglio alcune cose.

    il programma parte con un menù che ti fa scegliere l'operazione da compiere.
    si dà per scontato che il file con i record dei clienti sia già stato creato in precedenza.
    ogni record è composto semplicemente dal numero di conto del cliente + nome + il suo saldo attuale.

    attraverso il programma puoi:
    1-visualizzare le informazioni del file (oldmast.dat) che contiene tutti i record dei clienti
    2-aggiornare il record dei clienti (oldmast.dat) con il file delle transazioni (trans.dat)
    3-creare un file (trans.dat) dove inserire tutte le transazioni effettuate da ciascun cliente in un determinato arco di tempo
    4-uscire


    il problema si pone quando cerco di scrivere sul file delle transazioni (scelta menu numero 3).

    infatti il file mi viene scritto, esco dalla funzione e mi ritrovo in un ciclo infinito quando si tratta di riselezionare la nuova scelta del menu:è come se lo scanf utilizzato per la scelta dell'opzione nel menù, mi leggesse qualcosa rimasto nello stdin e quindi io non posso più inserire nulla da tastiera

    vi posto il codice e anche l'output finale

    per vedere il codice andate qui:

    http://nopaste.simosnap.com/2003

    e questo è l'output finale:





    programmo con gli xcode su OS X.4.

    grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156
    vorrei aggiungere che ho già provato a mettere un

    fflush(stdin)

    prima dello scanf

    ma non funziona...

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Prova a metterle la fflush dopo la scanf ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156
    ho provato a mettere fflush un po' da tutte le parti, ma non c'è niente da fare...

    non vorrei che centri qualcosa con il carattere EOF, magari l'ho gestito male... solo che non ho idee a riguardo...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.