PDA

Visualizza la versione completa : [C++] Inserimento valori con un solo input


blackcat90
13-03-2011, 18:29
Salve, come da titolo vorrei chiedervi se in c++ si possono inserire valori utilizzando un solo input.
Ad esempio, se ho una classe complesso costituita da un valore reale e da uno immaginario, posso inserire in input direttamente la stringa 8+9i o devo effettuare l'input separato dei valori?
Se si può fare, in che modo si implementa l'operazione di input?

blackcat90
14-03-2011, 12:33
Nessuno può aiutarmi?

blackcat90
14-03-2011, 19:22
Originariamente inviato da blackcat90
Salve, come da titolo vorrei chiedervi se in c++ si possono inserire valori utilizzando un solo input.
Ad esempio, se ho una classe complesso costituita da un valore reale e da uno immaginario, posso inserire in input direttamente la stringa 8+9i o devo effettuare l'input separato dei valori?
Se si può fare, in che modo si implementa l'operazione di input?

Qualcuno potrebbe aiutarmi?

shodan
14-03-2011, 19:36
Puoi sovraccaricare l'operatore >> per accettare la tua classe. Comunque esiste già la classe std::complex<> che fa quello che ti serve.
http://www.cplusplus.com/reference/std/complex/complex/

blackcat90
18-03-2011, 17:59
Originariamente inviato da blackcat90
Salve, come da titolo vorrei chiedervi se in c++ si possono inserire valori utilizzando un solo input.
Ad esempio, se ho una classe complesso costituita da un valore reale e da uno immaginario, posso inserire in input direttamente la stringa 8+9i o devo effettuare l'input separato dei valori?
Se si può fare, in che modo si implementa l'operazione di input?

Salve, riprendo la discussione perché vorrei un chiarimento ulteriore.Ho fatto la domanda perché in un compito il prof mi ha chiesto di inserire i valori reale e immaginario di un numero complesso con un solo input (es 4+5i) utilizzando l`overloading dell`operatore di estrazione dallo stream.Quindi chiedo: é possibile inserire i valori con un solo input (del tipo 4+5i) all`interno della funzione operatore e senza usare classi definite nelle librerie standard?

shodan
18-03-2011, 19:02
Si. Definisci l'operatore >> per la tua classe, acquisisci la stringa, la parserizzi secondo le regole che ti servono e inserisci i valori nella tua classe.

blackcat90
18-03-2011, 22:55
Grazie per aver risposto.
Posso chiederti in che modo si implementa la parserizzazione, perché per me é un concetto che non ho mai affrontato e su internet ho trovato poco.
Ad esempio, se ho una classe complesso con due valori double, come effettuo l`input?

shodan
18-03-2011, 23:56
Prendendo come esempio il tuo: 4+5i, l'acquisizione sarà di tipo stringa visto che ci sono + e i.
Prendi tutto quello prima del segno +, lo converti in double e lo inserisci nel primo campo. Da quel che rimane togli la i, converti in double e lo inserisci nel secondo campo. Per una cosa così semplice puoi usare strtok, però dipende da che stringa usi per l'acquisizione.

blackcat90
22-05-2011, 19:59
Ciao, rispondo dopo molto tempo perché ho dovuto fare altro.
Potresti fare un esempio in codice di un inserimento con un solo input in una classe complesso, ad es. 7.5-8i, perché non mi è ben chiaro come convertire la string in double, e come usare i caratteri delimitatori in strtok.
Grazie per le risposte.

blackcat90
24-05-2011, 22:30
Originariamente inviato da blackcat90
Ciao, rispondo dopo molto tempo perché ho dovuto fare altro.
Potresti fare un esempio in codice di un inserimento con un solo input in una classe complesso, ad es. 7.5-8i, perché non mi è ben chiaro come convertire la string in double, e come usare i caratteri delimitatori in strtok.
Grazie per le risposte.
up

Loading