Come posso rilevare se una linea è vuota?Come rilevare le linee vuote durante la lettura dall'oggetto istream in C++?
ho:
1
2
3
4
5
Sto leggendo questo con istream r così:
int n;
r >> n
Voglio sapere quando raggiungo lo spazio tra 4 e 5. ho provato a leggere come char e usando .peek() per rilevare \ n ma questo rileva il \ n che segue il numero 1. La traduzione dell'ingresso precedente è: 1 \ n2 \ n3 \ n4 \ n \ n5 \ n se ho ragione ...
Dal momento che sto per manipolare gli ints, piuttosto li leggerò come ints che usare getline e quindi la conversione in int ...
¤ Leggere ogni riga in 'std :: string' usando' std :: getline'. Controlla la lunghezza della corda. Utilizzare per es. un 'std :: istringstream' per leggere i singoli elementi dalla riga di input. Questo ti aiuterà anche con input errati. Cheers & hth., –
Oh, ho appena visto l'ultimo paragrafo, che parafrasato dice "Non voglio usare il modo più semplice e ragionevole". In quel caso ci sono virtualmente milioni di modi più complessi. Solo l'immaginazione può mettere limiti ai modi di fare qualcosa in modo sciocco-complesso. Saluti, –
Okay, non devi essere scortese. Almeno ho provato diversi modi prima di postare questo. Volevo solo sapere se c'era un altro modo. Sto solo imparando C++ atm. Grazie per il commento istringstream, però, ho intenzione di provare questo mixato con il getline! Puoi postarlo come risposta se vuoi, e lo accetterò. – bb2