PDA

Visualizza la versione completa : [C] Piccola Shell


eziolink88
30-04-2008, 16:49
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

Dark_Limit
30-04-2008, 18:30
Al posto del break; dopo il costrutto if di controllo del comando exit prova a fare direttamente return 0;

MItaly
30-04-2008, 18:56
Inserisci un


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.

eziolink88
30-04-2008, 21:27
Non funziona, non riesco a capire questo comportamento... :dh: :dh:

menphisx
30-04-2008, 21:45
prova:


fgets(comando, 20, stdin);

al posto della scanf().

:ciauz:

eziolink88
30-04-2008, 22:00
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?

Loading