2.3.1 Tulostus cout-oliolla

Koska syöttö ja tulostus ovat hyvin riippuvaisia käytetystä ohjelmointiympäristöstä, on niitä vastaavat toiminnot määritelty aliohjelmakirjastoissa. Näin ohjelmat on helpompi tehdä siirrettäviksi. Kirjastossa iostream on määritelty mm. tulostukseen käytettävä cout ja syöttöön käytettävä cin.

Tähän astisissa esimerkeissä on jo useasti tulostettu näytölle, niin tekstiä:

cout << "Tervetuloa!\n";

kuin muuttujien arvojakin:

cout << pituus;

Muuttujan tyyppinä voi olla mikä tahansa tähän mennessä opituista tyypeistä (int, double, char, ...) tai se voi olla vaikkapa merkkijonomuuttuja. Tyyppiä ei kuitenkaan tarvitse erikseen kertoa cout:lle, vaan se osaa tunnistaa tyypin ja valita sopivan tulostusmuodon sen mukaan.

Tulostuslauseessa voi olla myös lausekkeita, joten siinä voidaan suorittaa laskentaa, kuten aritmeettisia operaatioita ja funktion kutsuja. Esimerkiksi, jos muuttujan luku arvo on 10, antaa lause

cout << "Tulos on " << (3*luku - 7) << ".\n";

tulostuksen

Tulos on 23.

Kuten edeltä nähdään voi yhdessä tulostuslauseessa olla useampia <<-operaattoreita, jolloin tulostus voidaan hoitaa pienempinä palasina. Esimerkiksi lauseilla

int tunteja=37;
double tuntipalkka=65.75;
cout << "Palkka " << tunteja << " tunnin ";
cout << "työstä on " << tunteja*tuntipalkka << " mk.\n";

saadaan seuraava tulostus:

Palkka 37 tunnin työstä on 2432.75 mk.

Huomaa erityisesti, että rivinvaihtoja ei tule automaattisesti, vaan ne täytyy tulostaa erikseen joko koodilla \n, kuten edellisissä esimerkeissä, tai ohjauskoodilla endl, esimerkiksi

cout << "Kiitos käynnistä!" << endl;

Oletuksena kukin tieto vie tulostuksesta juuri niin monta merkkiä kuin on tarpeellista. Tulostusta voidaan tarvittaessa formatoida eli muotoilla eri tavoin. Formatoitu tulostus printf-funktion avulla esitetään myöhemmin.