otevirani_zapis_soubory _3

Transkript

otevirani_zapis_soubory _3
První pohled
do Objektového Programování
//Program pro otevírání souborů pro čtení a zápis
#include <fstream> //import třídy
#include <iostream> //import třídy
using namespace std;
int main()
{
char nazevSouboru[80]; //vyhrazen zásobník pro název souboru
char buffer[255]; // pro zadání uživatele
cout << "Nazev souboru: "; //tisk na obrazovku
cin >> nazevSouboru; //vstup uživatele z klávesnice
ofstream fout(nazevSouboru); // otevřít pro zápis
fout << "Tento radek se primo zapise do souboru...\n";
cout << "Zadejte text souboru: ";
cin.ignore(1,'\n'); // přeskočení znaku nového řádku za názvem souboru
cin.getline(buffer,255); // převzetí zadání uživatele
fout << buffer << "\n"; // a jeho zápis do souboru
fout.close();
// zavření souboru a příprava pro otevření
Třídy
Objekty
Členské funkce
Proudy
Zásobníky
Instance
Proměnné…?!
ifstream fin(nazevSouboru); // otevření souboru pro čtení
cout << "Zde mame obsah souboru:\n";
char znak;
while (fin.get(znak))
cout << znak;
cout << "\n***Konec obsahu souboru.***\n";
fin.close();
char reakce;
cin >> reakce;
return 0;
// zavře a uloží soubor na disk
}
//konec programu
----------------------------------------------------------------------------------------------------------------------------Objekty ofstream – pro čtení a zápis ze souborů a zápis do nich, jsou odvozené z objektů iostream.
Předcházet musí fstream.h
Objekty iostream spravují příznaky, které hlásí stav vašeho vstupu a výstupu. Jednotlivé příznaky
můžete testovat logickými funkcemi:
•
•
•
•
eof() vrací TRUE, pokud bylo v daném objektu dosaženo konce souboru, EOF
bad() vrací TRUE, okusíte-i se o neplatnou operaci
fail() vrací TRUE kdykoli je bad() TRUE nebo selže nějaká operace
good()
vrací TRUE, kdykoli jsou všechny tři ostatní funkce FALSE
objekt
název objektu parametr
ofstream fout(nazevSouboru); // otevřít pro zápis
fout ~ cout
ifstream fin(nazevSouboru); // otevřít pro čtení
fin ~ cin
•
funkce close ()
ZAVŘE SOUBOR A ULOŽÍ HO NA DISK
•
funkce getline()
přečte řetězec ze vstupního proudu in. Čtení skončí, narazí-li
funkce na konec souboru.
cin.getline()
getline() - členská funkce objektu cin
globální objekt cin
cin se zpřístupní po importu iostream = třída (knihovna tříd) odvozená ze tříd
istream a ostream a poskytuje metody vstupu a výstupu pro zápis na
obrazovku
Třídy fstream zajišťují vstup a výstup pro soubory
Třída = sbírka proměnných (často různých typů) v kombinaci se sadou funkcí.
To vše zapouzdřeno do jedné sbírky, kterou nazýváme objekt. Vše pak je na jednom místě, což
usnadňuje odkazování, kopírování a manipulaci s daty. Části programu, které budou třídu používat,
mohou s objektem pracovat, aniž by se musely starat o to, co přesně obsahuje a jak funguje.
Třída se může skládat z libovolné kombinace typů proměnných, a dokonce také jiných typů tříd.
Proměnné třídy nazýváme členské funkce neboli datové členy.
Třída Auto může obsahovat členské proměnné, které budou představovat
motor, sedadla, kola…
Funkce třídy manipulují členskými proměnnými. To jsou členské funkce
neboli metody třídy. Zahrnují funkce Start(), Brzdit(), Zastavit()…
Objekt je samostatnou instancí třídy.
Auto
– Třída
Škodovka – Objekt typu Auto
Hmotnost – Proměnná typu unsigned int

Podobné dokumenty

VÝUKOVÝ MATERIÁL

VÝUKOVÝ MATERIÁL #include a using namespace std;

Více

Streaming - návod pro uživatele

Streaming - návod pro uživatele Streaming - návod pro uživatele

Více

pdf 190kB

pdf 190kB - Amplituda a fáze (délka a úhel, …) První verze je výhodná pro operace jako sčítání, druhá pro násobení. Budeme více násobit nebo sčítat? Obecně nelze říci -> reprezentace jsou rovnocenné. Dále ve...

Více

Objektové programování 1 - Starší publikace a seriály

Objektové programování 1 - Starší publikace a seriály lze mít výhrady – alespoň podle mínění jazykových korektorů. Pro Windows si dovolíme používat občas označení „Wokna“.

Více

1. Úvod www.uamt.feec.vutbr.cz/~richter

1. Úvod www.uamt.feec.vutbr.cz/~richter - rozhodneme, zda je možné použít stávající třídu, zda je možné upravit stávající třídu (dědění), zda vytvoříme více tříd (buď výsledná třída bude obsahovat jinou třídu jako členská data, nebo vytv...

Více

Objektové programování 2 - Starší publikace a seriály

Objektové programování 2 - Starší publikace a seriály v Object Pascalu v Delphi. V následujících kapitolách se dočtete o dynamické identifikaci typů v C++ a v Delphi, o nových operátorech přetypování zavedených normou jazyka C++ a o prostorech jmen. N...

Více

Detekce tautologie pomocí BDD Michal Navrkal

Detekce tautologie pomocí BDD Michal Navrkal jednotlivé řádky pole odpovídají řádkům termů v PLA souboru. Proměnná rad udává počet řádků matice a je získána z PLA souboru z hodnoty za klíčovým slovem .p nebo je spočtena z počtu řádků PLA. A k...

Více

přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory

přetížení operátorů (o) - pro vlastní typy je možné přetížit i operátory - snažíme se, aby se přetížené operátory chovaly podobně jako původní (např. nemění hodnoty operandů, operátor + sčítá nebo spojuje…) - klíčové slovo operator - operátor má plné (funkční) a zkrácen...

Více

Optoelektronické metody 3D zaměření povrchů předmětů

Optoelektronické metody 3D zaměření povrchů předmětů pro útvary vyššího než druhého stupně (kvadratické plochy, …) neexistuje efektivní metoda k získání fyzických parametrů (tvar, velikost, pozice, …) z algebraických parametrů

Více