====== std::cin - std::cout - std::cerr ======
CONSOLE INPUT, OUTPUT ed ERROR
Appartengono alla STL (Standard Template Library), con header:
#include
Appartengono al namespace //std//. Non sono funzioni, ma oggetti (di tipo classe)
===== operatore Extractor >> =====
Extractor preleva //caratteri// (da tastiera) e li trasforma in //dati// dentro una variabile
std::cin >> variabile;
* รจ insensibile agli eventuali spazi iniziali (o tabulazioni)
* termina la lettura al primo spazio (o invio o tabulazione)
* //getline(std%%::%%cin,varstring)// legge invece anche gli spazi
* //std%%::%%cin.get(varchar)// legge un solo carattere.
Provare a scrivere un esempio di programma che legge separatamente nome e cognome e poi mette questi dati all'interno di un'unica variabile usando l'operatore //concatenazione// (//+//).
Provare a scrivere l'esempio inverso... (aiutati da std%%::%%stringstream in )
===== operatore Insertion << =====
Insertion deposita //caratteri// (nel terminale video) a partire dai //dati// della variabile
std::cout << variabile;
* il valore speciale //std%%::%%endl// inserisce un newline e svuota il buffer
==== Manipolatori permanenti ====
I manipolatori di output permettono di trattare il testo prima di visualizzarlo.
Alcuni hanno un effetto temporaneo, molti hanno un effetto permanente (vanno annullati esplicitamente)
#include
#include
int main()
{
std::cout << 44 << std::endl; // 44
std::cout << std::hex << 44 << std::endl; // 2c (base permanente)
std::cout << std::showbase << 44 << std::endl; // 0x2c
std::cout << std::dec << 44 << std::endl; // 44
std::cout << std::setprecision(4) << 99.123465 << std::endl; // 99.12 (precisione permanente)
std::cout << std::fixed << 99.123465 << std::endl; // 99.1235
std::cout << std::scientific << 99.123465 << std::endl; // 9.9123e+01
return 0;
}