Home >> C++ návod >> Vstup a výstup

Vstup a výstup

Všechny ukázky programů, se kterými jsme se v tomto tutoriálu doposud setkali, neumožňovali jakoukoliv komunikaci s uživatelem. Programy jsou psány od toho, aby vstupní data proměňovaly ve výstupní data. Proto je velmi důležité, aby program s uživatelem komunikoval.

Komunikací máme na mysly výpis zpráv na obrazovku, které například informují uživatele o tom, jaká data má zadávat nebo popisují aktuální stav. V těchto případech se jednán o komunikaci ze strany počítače. Na druhé straně stojí uživatel, který komunikuje tím, že zadavá data nebo jiné pokyny.V této lekci se proto naučíme psát programy, které tuto oboustranou komunikaci umožňují.

Výstup (cout)

Nejprve se budeme zabývat výstupem, tedy komunikací ze strany počítače. Standartním výsptupem programu je výpis textu na obrazovku. K tomuto účelu v C++ slouží příkaz cout.

S tímto příkazem, jsme se však v tomto tutoriálu již několikrát setkali. Víme tedy, že se používá ve spojení s operátorem <<. Rovněž by nás neměl překvapit příkaz endl, který slouží k odřádkování, viz následující ukázky:

cout << x << endl;
cout << "Zadej libovone cislo: " << endl;
cout << "Objem motoru je: " << motor_objem << " litru" << endl;

V prvním případě dojde k výpisu hodnoty proměnné x na obrazovku. Výstup bude záviset na hodnotě proměnné a vypadat může například takto:

52

Ve druhé ukázce vypisujeme pouze text: Zadej libovone cislo: . V takovém případě je nutné tento text zapsat do uvozovek. Výstup je následující:

Zadej libovolne cislo:

Poslední ukázka je kombinací 2 předešlých. Vypisujeme totiž jednak text, ale i hodnotu proměnné (motor_objem). Výstup může být následující:

Objem motoru je: 2.0 litru
Poznámka: Příkaz endl pro odřádkování není nutné používat. Odřádkovat text je možné také pomocí sekvence \n, která je součástí vypisovaného textu, například:
cout << "Prvni veta\n Druha veta";

Vstup (cin)

Nyní se podíváme jak umožnit uživateli komunikovat s počítačem. Uživatel komunikuje tak, že zadává data z klávesnice. K tomu v C++ slouží příkaz cin ve spojení s operátorem >>. Tento operátor však narozdíl od výstupu (cout), musí být následován proměnnou. Například:

string jmeno;
cin >> jmeno;

V příkladu jsme nejdříve deklarovali proměnnou jmeno. Následuje příkaz cin pro naplnění této proměnné nějakou hodnotou. V tomto případě je proměnná typu string, bude tedy obsahovat nějaký textový řetězec.

Každý program je zpracováván od shora řádek po řádku. Ve chvíli kdy má být zpracován řádek obsahující příkaz cin, proces se přeruší a čeká až do chvíle, kdy uživatel zadá data z klávesnice. Tyto data je potřeba potvrdit klávesou ENTER. Po potvrzení proces zpracování opět pokračuje od následujícího řádku.

Užití cin a cout v programu

Nyní si tedy konečně napíšeme program, který disponuje oboustranou komunikací:

#include <iostream>
using namespace std;
int main()
{
string jmeno,bydliste;
int vek;
cout << "######### FORMULAR #########" << endl;
cout << "Zadej jmeno: ";
cin >> jmeno;
cout << "Zadej tve bydliste: ";
cin >> bydliste;
cout << "Zadej tvuj vek: ";
cin >> vek;

cout << "\n######### TVE OSOBNI UDAJE #########" << endl;
cout << "Jmeno: " << jmeno << endl;
cout << "Vek: " << vek << endl;
cout << "Bydliste: " << bydliste << endl;
return 0;
}

Jedná se o velmi jednoduchý program, kde je postupně vyžádáno zadání několika osobních informací, které jsou nakonec přehledně vypsány. Zdrojový kód si zkopírujte a vyzkoušejte.

Pokud jste si tento program opravdu odzkoušeli, tak jste si možná všimli toho, že pokud zadáváme pomocí cin řetězec, lze zadat pouze jedno slovo. Zadáme-li více než jedno slovo program spadne. Proto si ukážeme, jak tento problém odstranit:

Funkce getline

K odstranění tohoto nešvaru použijeme funkci getline, kterou doporučuji používat pro řetězce více než cin. Předchozí příklad bude po úpravách vypadat následovně:

#include <iostream>
using namespace std;
int main()
{
string jmeno,bydliste;
int vek;
cout << "######### FORMULAR #########" << endl;
cout << "Zadej jmeno: ";
getline (cin, jmeno);
cout << "Zadej tve bydliste: ";
getline (cin, bydliste);
cout << "Zadej tvuj vek: ";
cin >> vek;

cout << "\n######### TVE OSOBNI UDAJE #########" << endl;
cout << "Jmeno: " << jmeno << endl;
cout << "Vek: " << vek << endl;
cout << "Bydliste: " << bydliste << endl;
return 0;
}
C++ Návod
Úvod do C++
Volba programu
Struktura programu
Proměnné
Konstanty
Operátory
Vstup a výstup
Řídící struktury
Funkce - 1.část
Funkce - 2.část
Pole
Práce s textovými řetězci
Ukazatele - 1.část
Ukazatele - 2.část
Dynamické proměnné
Datové struktury
©2008 - 2011 Klikzone.cz
Ráj aut - inzerce nových i ojetých aut