Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C] Piccola Shell

  1. #1

    [C] Piccola Shell

    Salve a tutti,
    ho costruito una piccolissima shell dei comandi, ma ho un problema: quando avvio il programma se inserisco nella stessa riga più di un comando separato da spazi, per poter terminare il programma devo digitare numerose volte il comando 'exit'. Ad esempio se digito ls pwd e cd devo digitare 2 volte exit per terminare il programma...qualcuno di voi sa come devo modificare il programma per farlo terminare con una sola exit ? Grazie a tutti

    P.S. il programma è allegato come immagine
    Immagini allegate Immagini allegate

  2. #2
    Utente bannato
    Registrato dal
    Apr 2008
    Messaggi
    196
    Al posto del break; dopo il costrutto if di controllo del comando exit prova a fare direttamente return 0;

  3. #3
    Inserisci un
    codice:
    fflush(stdin);
    prima della scanf per svuotare il buffer di input. Ricorda comunque che se vuoi acquisire un'intera linea invece della scanf devi usare la fgets.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4

    [c] Piccola Shell

    Non funziona, non riesco a capire questo comportamento...

  5. #5
    prova:
    codice:
    fgets(comando, 20, stdin);
    al posto della scanf().


  6. #6

    [c] Piccola Shell

    Niente, ho provato a vedere il comportamento della Konsolle e prende solo il primo comando e lo esegue e trascura tutti gli altri, anche io allora devo implementare tale comportamento, non dovrò mica leggermela carattere per carattere fino al primo spazio? però non può funzionare con un comando del tipo cd .. spaziato, vabè per questi tipi di comandi non importa, ma è così che devo fare? leggerla carattere per carattere oppure c'è un modo più efficiente per risolvere la questione?

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.