|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jan 2002
Messaggi: 2
|
overloading cin e cout
Ciao,
devo leggere i dati di una classe (che sono cognome,nome,data di nascita) da tastiera o da file. Leggendo da tastiera vengono stampate delle stringhe (ad es.:"Nome : "). Non voglio che queste stringhe vengano stampate se leggo da file. Ho provato con ifstream in; .... if(cin==in) cout << ... ma non funziona (ogni volta un risultato diverso). come posso riuscire a distinguere se l'operatore di input ( o output) è riferito a lettura da tastiera o da file? Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2001
Messaggi: 178
|
Re: overloading cin e cout
Originariamente inviato da aronne
[...] come posso riuscire a distinguere se l'operatore di input ( o output) è riferito a lettura da tastiera o da file? Premesso che il mio (gia' scarso) C++ e' arrugginito... Ma std::cin, std::cout e std::cerr non sono SEMPRE collegati al terminale? Se dei dati provengono da questi stream, e' ovvio che vengono o sono diretti al terminale... no?
__________________
-----BEGIN GEEK CODE BLOCK----- Version: 3.1.2 GCS/M/E d- +:++ a-- C++>$ UL++ P L++>+++ E---@ W+(-) N++ o? !K w O? M- V- PS PE Y+ PGP- t- 5? X+ R* tv++>+ b+@ DI>+ D+ G e>++ h!(+) r(--) !y? ------END GEEK CODE BLOCK------ [/size] |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2001
Città: Trento
Messaggi: 7095
|
Neache io soprrei come fare !!!
Ciao ci si sente per telefono. |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Ciao !
Cosa intendi dire con "ogni volta un risultato diverso" ? In teoria dovrebbe funzionare come hai scritto tu |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
in alternativa comunque puoi fare anche cosi':
if( cin.rdbuf() == in.rdbuf() ) ... in pratica confronti i puntatori ai buffer, che ovviamente coincideranno se e solo e in e' cin stesso. Un trucco un po' sporco , ma dovrebbe funzionare nel tuo caso |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Jan 2002
Messaggi: 2
|
Grazie a tutti.
Problema risolto. Funzionava anche con (cin==in) il problema è che quando lanciavo il programma e caricavo i dati ( con : main < input.d) sbagliavo. Il programma si aspettava di trovare tutti i dati in input.d e così non era ... Grazie ancora. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:26.



















