User Tools

Site Tools


appunti3s:cin_cout

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
appunti3s:cin_cout [2019/07/28 09:46] – correzione bug del colore profproappunti3s:cin_cout [2020/06/08 22:19] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== std::cin - std::cout - std::cerr ====== 
 +
 +CONSOLE INPUT, OUTPUT ed ERROR
 +
 +Appartengono alla STL (Standard Template Library), con header:
 +
 +<code>#include <iostream></code>
 +
 +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
 +
 +<code>std::cin >> variabile;</code>
 +
 +  * è 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 <sstream>)
 +
 +
 +===== operatore Insertion << =====
 +Insertion deposita //caratteri// (nel terminale video) a partire dai //dati// della variabile
 +
 +<code>std::cout << variabile;</code>
 +  * 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)
 +
 +<file c base.cpp>
 +#include <iostream>
 +#include <iomanip>
 +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;
 +}
 +</file>
 +