Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[C] Leggere da shell fino a CTRL-C

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[C] Leggere da shell fino a CTRL-C

Messaggioda fremyd » lun gen 02, 2006 12:14 pm

ciao a tutti,
avrei bisogno di leggere da tastiera delle informazioni (senza discriminazione del tipo finkè nn viene scritta la parola EXIT o simili..) in C
Io avevo pensato di intercettare un signal CTRL-C e a questo punto settare una variabile "booleana" che controlla il while di lettura..
Qsta procedura funziona ma m sembra poco "elegante" quindi vorrei chiedervi se esiste un altro metodo migliore d qsto..
Avatar utente
fremyd
Aficionado
Aficionado
 
Messaggi: 77
Iscritto il: ven feb 27, 2004 7:38 pm

Messaggioda Xerex » lun gen 02, 2006 2:07 pm

E' necessario l'uso dei segnali?

Altrimenti, all'interno del ciclo leggi carattere per carattere, mantenendoti in un bufferino a parte quelle lettere che compongono ad esempio exit (non hai calcolato che si potrebbe dover scrivere exit senza voler uscire?), cioè, se viene digitata una e te la copii come input e anche nel buffer, se la lettera dopo è una x fai lo stesso, altrimenti cancelli il tuo buffer e così via fino ad aver completato exit...

capito? [:I]
Fare la grigliata, è sempre una figata!
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda fremyd » mar gen 03, 2006 6:39 pm

per quel che ho capito, la tua soluzione nn permette d poter digitare "exit" come stringa da considerare (senza uscire dal prog)
Io voglio evitare proprio qsto nel senso che voglio poter acquisire TUTTE le stringhe (senza nessun tipo d limitazione..)
Ecco perché avevo pensato ai segnali.. (e comincio a pensare che la mia sia l' unica soluzione possibile)
Avatar utente
fremyd
Aficionado
Aficionado
 
Messaggi: 77
Iscritto il: ven feb 27, 2004 7:38 pm


Messaggioda Silver Black » mer gen 04, 2006 6:33 pm

[nota] MODERAZIONE [nota]
Caro fremyd, ricordati di mettere il linguaggio di programmazione tra parentesi quadrate prima del subject, es.: "[DELPHI] Come funziona l'istruzione xxx?"

Per questa volta l'ho fatto io per te!
Sergio Pappalardo aka Silver Black
https://www.silvercybertech.com
Avatar utente
Silver Black
Silver Member
Silver Member
 
Messaggi: 1148
Iscritto il: gio gen 06, 2005 8:50 pm
Località: Italia

Messaggioda Xerex » mer gen 04, 2006 8:39 pm

fremyd ha scritto:per quel che ho capito, la tua soluzione nn permette d poter digitare "exit" come stringa da considerare (senza uscire dal prog)
Io voglio evitare proprio qsto nel senso che voglio poter acquisire TUTTE le stringhe (senza nessun tipo d limitazione..)
Ecco perché avevo pensato ai segnali.. (e comincio a pensare che la mia sia l' unica soluzione possibile)


Non c'è mai una sola soluzione...
puoi scegliere un tasto speciale che sai non potrai utilizzare come input per terminare la scansione...
Fare la grigliata, è sempre una figata!
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda fremyd » gio gen 05, 2006 12:28 pm

intendi ad esempio che dovrei acquisire dati fino alla pressione di ESC ?? Ma in che modo controllo la pressione dell ' esc ? Sempre utilizzando una variabile bool da controllare nel while.. siamo punto e a capo..
OK mi arrendo.. a qsto punto la soluzione che ho descritta all' inizio credo sia la migliore per le mie esigenze..

Ciauz!

PS scusa silver black per l' errata intestazione della disc
Avatar utente
fremyd
Aficionado
Aficionado
 
Messaggi: 77
Iscritto il: ven feb 27, 2004 7:38 pm

Messaggioda Xerex » gio gen 05, 2006 1:33 pm

Non c'è bisogno di usare una variabile bool...basta che controlli nel ciclo quale tasto è stato premuto
Fare la grigliata, è sempre una figata!
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda fremyd » ven gen 06, 2006 4:54 pm

cioè?
Dovrei leggere 1 carattere alla volta anzikkè leggere stringhe.. o sbaglio?
Se m sbaglio, postami un esempio su cm fare ad esempio a leggere stringhe fino alla pressione di ESC..
Avatar utente
fremyd
Aficionado
Aficionado
 
Messaggi: 77
Iscritto il: ven feb 27, 2004 7:38 pm

Messaggioda Xerex » ven gen 06, 2006 5:32 pm

Leggeresti un carattere alla volta si...

Altrimenti, se leggere un stringa è necessario, puoi fare l'acquisizione delle stringhe, e alla fine di ognuna di queste chiedere se continuare o no...il problema è che non ho capito esattamente come vuoi che venga fatto l'input...
Fare la grigliata, è sempre una figata!
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda fremyd » dom gen 08, 2006 12:54 pm

ok grazie d tutto.. per ora va bene cosi'..
Avatar utente
fremyd
Aficionado
Aficionado
 
Messaggi: 77
Iscritto il: ven feb 27, 2004 7:38 pm


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising