Come si stampa una variabile istream sullo standard. [EDIT] Sto cercando di eseguire il debug di uno scenario in cui ho bisogno di ouput un istream ad un file di logCome stampare un intero istream con lo standard out e la stringa
risposta
Questo stamperà l'intero flusso, 1 carattere alla volta:
char c;
c = my_istream.get();
while (my_istream)
{
std::cout << c;
c = my_istream.get();
}
Questo stamperà la tutta la faccenda, ma scartare spazi bianchi:
std::string output;
while(my_istream >> output)
std::cout << output;
Edit: sto assumendo che si desidera copiare l'intero contenuto del flusso, e non solo un singolo valore. Se vuoi solo leggere una singola parola, controlla invece la risposta di 1800.
La soluzione più ovvia è un ciclo while la copia di una parola alla volta, ma si può fare più semplice, come un bel oneliner:
#include <iostream>
#include <iterator>
...
std::istream i;
std::copy(std::istream_iterator<char>(i), std::istream_iterator<char>(), std::ostream_iterator<char>(std::cout));
I stream_iterators utilizzano operatore < < e >> internamente, nel senso che ignoreranno lo spazio bianco. Se vuoi una copia esatta, puoi usare invece std :: istreambuf_iterator e std :: ostreambuf_iterator. Funzionano sui buffer di flusso (non formattati) sottostanti in modo da non saltare spazi bianchi o convertire righe nuove o altro.
Si può anche utilizzare:
i >> std::noskipws;
per evitare spazi bianchi da scomparire. Si noti tuttavia che se il flusso è un file binario, alcuni altri caratteri potrebbero essere danneggiati dagli operatori >>
e <<
.
è necessario leggere da esso, e poi l'uscita ciò che si legge:
istream stm;
string str;
stm >> str;
cout << str;
che legge solo una parola (spazio delimitato). Penso che voglia copiare tutto dal flusso. – jalf
Penso che se lo volesse, lo avrebbe detto –
Chi sa cosa vuole, la domanda è scarsa. –
È ouput streambuf del istream.
Ad esempio, per emettere un ifstream a cout:
std::ifstream f("whatever");
std::cout << f.rdbuf();
std :: ifsream sovraccarico e std :: ostringstream
C++ 11 o superiore
Attenziione a &&
in std :: ifstream che consente di dirigere utilizzando
#include <iostream>
#include <sstream>
#include <fstream>
std::ostream& operator<<(std::ostream& os, std::basic_ostringstream&& iss){
return os<<iss.str();
}
std::ostream& operator<<(std::ostream& os, std::ifstream&& ifs){
return std::cout<<ifs.rdbuf();
}
int main()
{
std::cout<<std::ostringstream("Test ostringstream overloading")<<std::endl;
std::ofstream("fstream.txt")<<"Test fstream overloading"<<std::endl;
std::cout<<std::ifstream("fstream.txt")<<std::endl; // overloading okay
}
uscita:
Test ostringstream overloading Test fstream overloading Process returned 0 (0x0) execution time : 0.012 s Press ENTER to continue.
- 1. Come posso standardizzare gzip in un file e anche stampare standard in standard out?
- 2. Ant exec: reindirizzamento standard out ma non errore standard
- 3. C# close standard out
- 4. Overflow intero in C: standard e compilatori
- 5. PHP stringa divisa in elemento intero e la stringa
- 6. Come stampare un numero intero a 64 bit come esadecimale?
- 7. Come convertire un intero in una stringa in modo flessibile?
- 8. C# IStream implementazione di IStream
- 9. Lettura di un numero intero dall'immissione standard
- 10. istream e memoria mappano un file?
- 11. Come stampare stringa costante con NSLog su iOS
- 12. Bash: confrontando una stringa come un intero
- 13. Converti stringa a intero
- 14. Numero intero lungo per stringa e viceversa, operazione con cifre
- 15. Come stampare la stringa letterale "$ 1" nello script bash?
- 16. Come stampare tutta la cartella con tslint
- 17. Come convertire un valore intero in stringa?
- 18. Postscript: come convertire un intero in stringa?
- 19. La compilazione di un file vuoto segue lo standard C++?
- 20. Come stampare una stringa con una barra rovesciata in Ruby
- 21. Come stampare un numero con uno spazio come mille separatori?
- 22. Come leggere e stampare il testo con newline da una stringa Python (Django) con HTML?
- 23. Come stampare due array affiancati con lo script di bash?
- 24. Oracle unirà JRockIt e lo standard JDK?
- 25. In C#, come verificare se una stringa contiene un intero?
- 26. come registrare un valore intero con log.d?
- 27. Come stampare un numero nell'assemblaggio NASM?
- 28. Trascinare e rilasciare file virtuali utilizzando IStream
- 29. JCombobox stringa (visibile) e numero intero (inerente)
- 30. Oracle. Come stampare la data e l'ora?
chiarire che cosa si sta cercando di fare. –
Voglio stampare l'intera stringa – kal