Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [C] Problema uscita da programma

    Ciao a tutti

    In un programma ho inserito questa riga:

    codice:
    while((scanf("%s", nome))!=EOF)
    {
    ...
    }
    Il problema è che per chiudere il programma devo premere 2 volte "CTRL+Z" invece di una volta sola. L'ho compilato con il Dev C++.

    Si può risolvere in qualche modo?


  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    45
    Ciao, ma una volta che decidi di non inserire più nomi non esce direttamente dal while e svolge la successiva operazione.....
    cmq se lo devi interrompere in modo brusco puoi provare "CTRL+C"....
    ivanet

  3. #3
    Esce dal while ed esegue la successiva operazione che è:

    codice:
    system("pause");
    e poi il programma finisce, ma devo inserire 2 volte "CTRL+Z"

  4. #4
    Il codice è concettualmente errato: la scanf restituisce semplicemente il numero dei campi convertiti con successo, non la stringa acquisita.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Copio dal manuale:

    La funzione scanf restituirà il valore della macro EOF, qualora si sia verificato un errore di input. Altrimenti, scanf restituirà il numero di elementi assegnati.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    45
    Uhm...ma la stringa nella system non va maiuscola?

    Ma quando termina il programma ti compare "Premere un tasto per continuare......"?
    ivanet

  7. #7
    La system("pause") l'ho tolta tanto non serviva...

    Funziona anche se scrivo "pause" minuscolo (non so se funziona maiuscola) e mi chiede di premere un tasto prima di chiudere la finestra


  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    45
    Fra un pò simulo una situazione simile, tanto uso il dev e vedo cosa accade a me e ti faccio sapere....
    ivanet

  9. #9
    Devi inserire "CTRL+Z" e premere il tasto INVIO.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    45
    Ho fatto un programmino di prova con un main ed il while con la tua condizione ma mi permette di inserire sempre nomi e non esce...EOF come carattere è lo spazio....ma non esce...per provare mi puoi dire cortesemente come esce?


    Grazie.
    ivanet

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.