přejít na obsah přejít na navigaci

Linux E X P R E S, Programovanie v jazyku C++: Hlavičkové súbory

Programovanie v jazyku C++: Hlavičkové súbory

cplusplus.png

V minulom diele sme si niečo povedali o funkcii main() a ďalších zaujímavostí. Tento článok sa bude zameriavať na tematiku hlavičkových súborov, priestoru mien, komentárov a zakončíme to znakom nového riadku.


Hlavičkové súbory

V minulom diele sme si spomenuli súbor iostream. Patrí do kategórie hlavičkových súborov. Samotný kompilátor obsahuje mnoho hlavičkových súborov, ktoré podporujú rôzne operácie a činnosti. Napríklad hlavičkový súbor math.h podporuje širokú škálu matematických úkonov.

Súbor iostream podporuje vstup a výstup a v starších verziách jazyka C++ bol jeho tvar #include <iostream.h>. V súčasnej verzii kompilátora práve pre podporu priestoru mien v jazyku C++ už nemusíte (resp. nesmiete!) pri #include<iostream> za iostream písať koncovku h.

Jazyk C++ podporuje aj konvertované hlavičkové súbory z jazyka C, napríklad cmath. Pri týchto hlavičkových súborov sa píše predpona c.

Priestory mien

Keby ste skúsili zariskovať a napísali by ste #include <iostream.h>, prekladač by vám pekne vynadal. Samozrejme, predpokladáme, že v súčasností každý má najnovšiu verziu kompilátora C++ (C++14, poprípade staršiu verziu C++11).  V budúcich častiach seriálu budeme automatický predpokladať, že nikto neprekladá programy archaickou verziou kompilátora.

Pri tvare #include <iostream> bez koncovky h a podporou std, je pohodlnejšie v programovaní vyžívať direktívu:

using namespace std;

Premenné, funkcie a triedy sú štandardné komponenty kompilátora jazyka C++. Tieto komponenty sú uložené v priestore mien (namespace), ktorý sa nazýva std. Úložisko do std platí len pre hlavičkové súbory bez koncovky h.

Vezmime si napríklad stream cin zo súboru iostream, ktorá je využívaná pre vstup od užívateľa, sa nazýva presne std::cin. Ak využijeme using namespace std, stačí napísať len cin.

Príklad 1: Najprv bez deklarácie std na začiatku

#include <iostream>

int main()
{
  std::cout << "Vítam ťa späť pri ďalšom diele o jazyku C++\n";
  std::cout << "Čo dnes podnikneme?\n";
  std::cout << "Pravdu máš, práca s deklaráciou std na začiatku je komfortnejšia!\\n";
  return 0;
}

S deklaráciou std na začiatku:

#include <iostream>

using namespace std;

int main()
{
  cout << "Vítam ťa späť pri ďalšom diele o jazyku C++\n";
  cout << "Čo dnes podnikneme?\n";
  cout << "Pravdu máš, práca s deklaráciou std na začiatku je komfortnejšia!\n";
  return 0;
}

Komentáre v C++

Poznámka začína za dvojitým lomítkom //. Kompilátor ignoruje všetko, čo je za //.  Komentáre sú používane na okomentovanie časti zdrojového kódu.  Ak chceme zakomentovať viac ako jeden riadok, na to slúži druhý spôsob zakomentovania a to /* (začiatok) a */ (koniec).

Príklad 2: Využitie komentárov

#include <iostream>

using namespace std;

int main()
{
  string meno;  // deklarácia premennej typu string
  cout << "Napíš svoje meno: ";   // funkcia vypíše na obrazovku reťazec
  cin >> meno;   // vstup od užívateľa
  cout << "Vítam ťa používateľ "<<meno;   //výpis reťazca a premennej na obrazovku
  return 0;   // ukončenie programu 
}

Znak nového riadku

Dvojznak \n nazývame znak nového riadku. Aj keď, ako ste si všimli, skladá sa v zápise z dvoch znakov, ale kompilátor vníma \n ako jeden znak. Tento znak uskutoční presun na začiatok nového riadku.

Stream cout po vstupe reťazca nevykoná presun na nový riadok. Preto je potrebné dodať znak \n. Najlepšie je si to porovnať na príkladoch.

Príklad 3: Najprv si pozrieme bez znaku nového riadku:

#include <iostream>

using namespace std;

int main()
{
  cout << "Dnes bude slnečno s teplotou vzduchu 22°C.";
  cout << "Zajtra sa ochladí na 15°C a bude sychravo.";
  cout << "Pozajtra bude horúci deň a kľudne môžte navštíviť bazény!";
  return 0;
}

Výstup programu:

Dnes bude slnečno s teplotou vzduchu 22°C. Zajtra sa ochladí na 15°C a bude sychravo. Pozajtra bude horúci deň a kľudne môžte navštíviť bazény!

Asi sami uznáte, že to moc prehľadne nevyzerá. Buďme náročnejší na formátovanie textu a skúsme každú vetu umiestniť do nového riadka.

Skúsme teraz pridať znak nového riadku:

#include <iostream>

using namespace std;

int main()
{
    cout << "Dnes bude slnečno s teplotou vzduchu 22°C.\n";
    cout << "Zajtra sa ochladí na 15°C a bude sychravo.\n";
    cout << "Pozajtra bude horúci deň a kľudne môžte navštíviť bazény!.\n";
    return 0;
}

Vystúp programu:

Dnes bude slnečno s teplotou vzduchu 22°C.
Zajtra sa ochladí na 15°C a bude sychravo.
Pozajtra bude horúci deň a kľudne môžte navštíviť bazény!

Nahoru

Příspěvky

Programovanie v jazyku C++: Hlavičkové súbory
NULL 6. 05. 2016, 09:28:24
Odpovědět  Odkaz 
Není to náhodou tak, že buď píši

#include

nebo

#include "iostream.h"

?
Re: Programovanie v jazyku C++: Hlavičkové súbory
NULL 6. 05. 2016, 09:30:39
Odpovědět  Odkaz 
A hele escaping?

#include &#60;iostream&#62;
Lukáš Jelínek Re: Re: Programovanie v jazyku C++: Hlavičkové súbory
Lukáš Jelínek 6. 05. 2016, 13:45:12
Odpovědět  Odkaz 
Do lomených závorek se dávají hlavičky standardních knihoven (umístěné typicky v /usr/include), kdežto do uvozovek hlavičky patřící přímo k programu nebo jeho knihovnám.
Programovanie v jazyku C++: Hlavičkové súbory
m 6. 05. 2016, 13:45:56
Odpovědět  Odkaz 
Proc je vsude u vypisu textu '\n'? Vzdy iostream na to ma std::endl.

std::cout
Eduard Boldižár Programovanie v jazyku C++: Hlavičkové súbory
Eduard Boldižár 6. 05. 2016, 15:03:40
Odpovědět  Odkaz 
Tento i ďalšie články budú písane s direktívou using namespace std;
a std::end1 je funkcionálne rovnaká vec ako znak \n.
A myslím si, že efektívnejšie a jednoduchšie je využívať \n.
Keď, ešte môžte pre väčšie objasnenie zavítať tu http://www.cplusplus.com/forum/general/20946/
Re: Programovanie v jazyku C++: Hlavičkové súbory
Daniel Kozak 7. 05. 2016, 09:50:54
Odpovědět  Odkaz 
za prve je to std::endl a ne std::end1. A za druhe to neni to same. std::endl dela vic nez ze se nahradi znakem konce radku. Je dobre si precist dokumentaci: http://www.cplusplus.com/reference/ostream/endl/
Re: Re: Programovanie v jazyku C++: Hlavičkové súbory
Tomas 15. 05. 2016, 21:43:08
Odpovědět  Odkaz 
Za prve std::endl1 bol evidentne preklep.
Za druhe std::endl je to same ako "\n".

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz