Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

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.


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys