====== 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; }