Vstup a výstup jsou nedílnou součástí komunikace programu s uživatelem. Vstupy a výstupy, se kterým se budeme dnes setkávat by pro vás neměly být vyloženě nic nového. Přesto je třeba tuto část bedlivě prostudovat, neboť nás bude provázet po celou dobu.
Každý programátor si nejprve potřebuje otestovat funkčnost svého programu, než jej spojí s uživatelským prostředím. K tomu mu poslouží standardní vstupy a výstupy. Dnes nebudeme rozebírat příklad jeden, ale dva.
Nejčastěji se komunikuje pomocí klávesnice a obrazovky. Klávesnice bude náš vstup a obrazovka náš výstup. Budou to 2 základní proudy cout(obrazovka) a cin(klávesnice).
#include <iostream>
#include <string>
using namespace std;
int main(){
cout << "Zadej prosim sve jmeno: ";
string jmeno;
cin >> jmeno;
cout << "Vase jmeno je " << jmeno << endl;
return 0;
}
Zadej prosim sve jmeno: Karel
Vase jmeno je Karel
Někdy je třeba, aby data byla uložena mimo zdrojový kód. C++ umožnůje pracovat se soubory velice jednoduše. K tomu nám složí datový proud "ifstream".
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
ofstream soubor1; // vystupni proud do souboru (zapis)
soubor1.open("test.txt", ios::out);
soubor1 << "Karel" << endl << "Mozdren" << endl << 22;
soubor1.close();
string jmeno, prijmeni;
int vek;
ifstream soubor2; // vstupni proud ze souboru (cteni)
soubor2.open("test.txt", ios::in);
soubor2 >> jmeno >> prijmeni >> vek;
cout << jmeno << " " << prijmeni << " " << vek << endl;
soubor2.close();
return 0;
}
Karel Mozdren 22
Vynecháme to co už umíme
cout << "Zadej prosim sve jmeno: ";
string jmeno;
cin >> jmeno;
cout << "Vase jmeno je " << jmeno << endl;
return 0;
"cout" je proud standardního výstupu na obrazovku. přesměrování dat se provádí pomocí operátoru <<. Tento operátor si můžeme představit jako šipku, která ukazuje směr toku dat. U cout ukazuje na cout, data jdou tedy ven na obrazovku. U cin ukazuje šipka směrem do proměnné (>>), data jdou tedy z klávesnice do proměnné.
#include <fstream>
"fstream" nám umožňuje používat datové proudy propojené se soubory.
ofstream soubor1; // vystupni proud do souboru (zapis)
soubor1.open("test.txt", ios::out);
soubor1 << "Karel" << endl << "Mozdren" << endl << 22;
soubor1.close();
"ofstream" je proud, který umožňuje výstup do souboru. Soubor se otevře pomocí metody open která má parametry jméno souboru a přepínač. V našem případě jsme použili přepínač ios::out, který říká, že chceme zapisovat do souboru. K souborovému proudu se chováme jako k cout, s tím rozdílem, že se data nezobrazí na obrazovce, ale zapíší se do souboru. Každý soubor je třeba po ukončení práce uzavřít to uděláme pomocí close.
string jmeno, prijmeni;
int vek;
ifstream soubor2; // vstupni proud ze souboru (cteni)
soubor2.open("test.txt", ios::in);
soubor2 >> jmeno >> prijmeni >> vek;
cout << jmeno << " " << prijmeni << " " << vek << endl;
soubor2.close();
"ifstream" Slouží jako proud ke čteni dat ze souboru. Funguje stejně jako cin, s tím rozdílem, že se data nenačítají z klávesnice, ale ze souboru. Pravidla jsou stejná: open otevíra (ios::in == cteni dat), close zavíra soubor.