8.3.2 Tiedon lukeminen C++:ssa, cin
C++:ssa lukeminen voidaan suorittaa C:n scanf:n lisäksi
tietovirtoja käyttäen:
cin >> matka_mm;
Valitettavasti samanlaista syötön pakottamista kuin
scanf:llä ala.c - ohjelmassa oli, ei ole helppo saavuttaa.
Käytännössä tällä ei ole merkitystä, koska
"oikeassa" ohjelmassa syöttö tulee lähes aina ensin
merkkijonoon, josta syöttötietoa sitten aletaan
käsittelemään. Pilkun syöttäminen lukujen väliin
(jos se on oleellista) voitaisiin tutkia seuraavasti:
c-muut\ala.cpp - tiedon kysyminen kunnes pilkku väliin
#include <iostream.h>
int main(void)
{
int pituus,leveys;
char c;
do { // Ohjelma on helppo saad ikuiseen silmukkaan!
cout << "Anna kentän pituus ja leveys metreinä >";
cin >> pituus >> c >> leveys;
} while ( c != ',' );
cout << "Ala on " << pituus*leveys << " m2." << endl;
return 0;
}
Hyvä puoli tietovirtojen käytössä on se, ettei helposti
unohtuvia osoitemerkkejä (&) tarvita. Ohjelma ei kuitenkaan toimi
idioottivarmasti, mutta kuten edellä todettiin, niin lukemalla
syöttörivi ensin merkkijonoon saataisiin parempi lopputulos.
Tähän tekniikkaan paneudutaan vähän myöhemmin.