Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Perussyöttö- ja tulostustoiminnot tMyn1 Perussyöttö- ja tulostustoiminnot Kun ohjelmaan sisällytetään otsikkotiedosto iostream, voidaan käyttää cin- ja.

Samankaltaiset esitykset


Esitys aiheesta: "Perussyöttö- ja tulostustoiminnot tMyn1 Perussyöttö- ja tulostustoiminnot Kun ohjelmaan sisällytetään otsikkotiedosto iostream, voidaan käyttää cin- ja."— Esityksen transkriptio:

1 Perussyöttö- ja tulostustoiminnot tMyn1 Perussyöttö- ja tulostustoiminnot Kun ohjelmaan sisällytetään otsikkotiedosto iostream, voidaan käyttää cin- ja cout-olioita lukemiseen ja tulostamiseen. cout-olio edustaa standarditulostevirtaa, ja kirjoitettu tieto tulostuu useimmiten oletusarvoisesti näytölle. Tulostaminen cout-oliolla: cout<<parametri1<<parametri2<< …; parametri on tulostettava vakio, muuttuja tai lauseke. Tarvittaessa parametrit ketjutetaan <<-operaattorilla (insertion operator).

2 Perussyöttö- ja tulostustoiminnot tMyn2 cout-oliolle ei tarvitse välittää ohjaustietoa tulostettavan parametrin muotoilua varten. cout-olio tunnistaa parametrin tyypin ja tulostaa sen oletusasetustensa mukaisessa muodossa. Ohjelmoija voi kuitenkin muotoilla tulostusta esim. manipulaattoroiden avulla. Rivinvaihto hoidetaan joko ohjausmerkillä ’\n’ tai manipulaattorilla endl. Seuraavassa esimerkissä kaiutetaan näytölle kahden muuttujan sisällöt.

3 Perussyöttö- ja tulostustoiminnot tMyn3 int main(array ^args) { int ika=17; char nimi[]="Henri"; cout<<"Nimi on "<<nimi<<" ja ik\204 on " <<ika<<" vuotta."<<endl; return 0; }

4 Perussyöttö- ja tulostustoiminnot tMyn4 cin-olio edustaa standardisyötevirtaa. Oletusarvoisesti luetaan näppäimistöltä tulevaa syötevirtaa. Luettavia syötteitä ei tarvitse muotoilla ohjausmerkeillä, vaan cin-olio tunnistaa sille tulevan parametrin tyypin ja käsittelee parametria tyyppiin sidotulla oletustavalla. Tiedon lukeminen cin-oliolla: cin>>parametri1>>parametri2>> …; cin-olion avulla voidaan lukea monta parametria kerrallaan. Parametrit erotellaan >>-operaattorilla (extraction operator).

5 Perussyöttö- ja tulostustoiminnot tMyn5 Lukeminen cin-olion avulla päättyy tyhjään väliin (välilyönti, rivinvaihto, tabulointi). Tehdään ohjelma, joka lukee näppäimistöltä tietoa kahteen muuttujaan cin-oliolla.

6 Perussyöttö- ja tulostustoiminnot tMyn6 int main(array ^args) { int ika; char nimi[15]; cout<<"Anna nimi ja ik\204: "; cin>>nimi>>ika; cout<<"Nimesi on "<<nimi<<" ja ik\204si on " <<ika<<" vuotta."<<endl; return 0; }

7 Perussyöttö- ja tulostustoiminnot tMyn7 cin-olio ohittaa syötteiden välissä olevat tyhjät välit automaattisesti. Syötteitä erottavia merkkejä ei siis voida lukea. Syötteiden välissä oleva merkki voidaan lukea get()- jäsenfunktiolla. get()-funktion kutsu: cin.get(); cin.get(muuttuja); Jos get()-funktio ei saa parametria, se lukee syötevirrasta merkin sijoittamatta sitä muuttujaan.

8 Perussyöttö- ja tulostustoiminnot tMyn8 int main(array ^args) { int luku; char merkki1, merkki2; cout<<"Anna luku: "; cin>>luku; cin.get(); cout<<"Anna merkkivakio: "; cin.get(merkki1); cin.get(); cout << "Anna toinen merkkivakio: "; cin.get(merkki2); cin.get();

9 Perussyöttö- ja tulostustoiminnot tMyn9 cin.get(merkki2); cin.get(); cout<<"Luku on "<<luku <<" ja eka merkkivakio on " <<merkki1<<" ja toka merkkivakio on " <<merkki2<< "."<<endl; return 0; }

10 Perussyöttö- ja tulostustoiminnot tMyn10 Välilyöntejä sisältävä merkkijono voidaan lukea get()- jäsenfunktiolla. cin-olion käyttö sellaisenaan ei tähän riitä, koska lukeminen loppuisi tyhjään väliin. Lisäksi cin-olion käyttö sellaisenaan ei estä ylivuototilannetta. Merkkijonon lukeminen: cin.get(merkkijono, maksimipituus); cin.get(merkkijono, maksimipituus, lopetusmerkki);

11 Perussyöttö- ja tulostustoiminnot tMyn11 get()-jäsenfunktio lukee maksimipituus-1 –merkkiä. Viimeinen merkki on varattu merkkijonon lopetusmerkille ’\0’. Argumentin lopetusmerkki oletusarvo funktiolla on rivinvaihto ’\n’. Argumenttina annettu lopetusmerkki (ja sitä mahdollisesti/luultavasti seuraavat merkkivakiot) jää/jäävät syötevirtaan odottamaan seuraavaa lukuoperaatiota!!! get()-jäsenfunktiota käytettäessä on edellisen syötteen lopussa oleva erotinmerkki (siis rivinvaihto) ohitettava esimerkiksi lukemalla se erikseen get():llä.

12 Perussyöttö- ja tulostustoiminnot tMyn12 Jos on luultavaa, että lopetusmerkin jälkeen syötevirtaan jää merkkivakioita (joista ei välitetä), voidaan ne ohittaa jäsenfunktiolla cin.ignore(lkm, lopetusmerkki); Näinhän luultavammin tapahtuu aina, kun on erikseen annettu jokin lopetusmerkki argumenttina, eikä siis ole hyväksytty oletusarvoa rivinvaihto ’\n’. Tehdään esimerkkiohjelma, jossa luetaan välilyöntejä sisältäviä merkkijonoja:

13 Perussyöttö- ja tulostustoiminnot tMyn13 #include "stdafx.h" #include using namespace System; using namespace std; int main(array ^args) { int ika; char kokonimi[30]; char osoite[30]; cout<<"Anna ik\204: "; cin>>ika; cin.get(); cout << "Anna nimi: ";

14 Perussyöttö- ja tulostustoiminnot tMyn14 cout << "Anna nimi: "; //Nyt luetaan nimeä kunnes vastaan tulee H-merkki: cin.get(kokonimi, 30, ’H'); //Nyt se H-merkki ja sitä seuraavat merkit //jäivät puskuriin: cin.ignore(25, '\n'); cout<<"Anna osoite: "; cin.get(osoite, 30); cin.get(); cout<<"Ik\204 on "<<ika<<" ja nimi on " <<kokonimi<<"\nja osoite on " << osoite<<"."<<endl; return 0; }

15 Perussyöttö- ja tulostustoiminnot tMyn15 Näytölle tulee seuraavanlaista:

16 Perussyöttö- ja tulostustoiminnot tMyn16 Tyhjiä välejä sisältäviä merkkijonoja voidaan lukea myös getline()-jäsenfunktiolla. getline()-funktio ohittaa syötteen jäljessä olevan erotinmerkin, joten sitä ei tarvitse erikseen ohittaa uudelleen lukemalla. getline()-funktion kutsu: cin.getline(merkkijono, maksimipituus); cin.getline(merkkijono, maksimipituus, lopetusmerkki);

17 Perussyöttö- ja tulostustoiminnot tMyn17 getline() lukee maksimipituus-1 –merkkiä. getline() sijoittaa viimeiseksi merkiksi merkkijonon lopetusmerkin ’\0’ ja lukee syötevirrasta lopetusmerkin. Tehdään esimerkkiohjelma, jossa käytetään getline()- jäsenfunktiota merkkijonojen lukemiseen:

18 Perussyöttö- ja tulostustoiminnot tMyn18 int main(array ^args) { int ika; char kokonimi[30]; char osoite[30]; cout<<"Anna ik\204: "; cin>>ika; cin.get(); cout << "Anna nimi: "; //Nyt luetaan nimeä kunnes vastaan tulee H-merkki: cin.getline(kokonimi, 30, ’H'); //Nyt H-merkkiä seuraavat merkit jäivät puskuriin: cin.ignore(25, '\n'); cout << "Anna osoite: "; cin.getline(osoite, 30);

19 Perussyöttö- ja tulostustoiminnot tMyn19 cout << "Anna osoite: "; cin.getline(osoite, 30); cout<<"Ik\204 on "<<ika<<" ja nimi on " <<kokonimi<<"\nja osoite on " <<osoite<<"."<<endl; return 0; }


Lataa ppt "Perussyöttö- ja tulostustoiminnot tMyn1 Perussyöttö- ja tulostustoiminnot Kun ohjelmaan sisällytetään otsikkotiedosto iostream, voidaan käyttää cin- ja."

Samankaltaiset esitykset


Iklan oleh Google