Jazyk C++ Přednáška č.2 Proudy, manipulátory Práce se soubory

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4.
ÚVOD DO C++ 3 TŘÍDY a objekty - POKRAČOVÁNÍ
Vstup a výstup Ing. Lumír Návrat  katedra informatiky, A-1018 
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Programování v C jazyku - SEMINÁŘ
Pascal - příklady.
VISUAL BASIC Práce se soubory.
Semestrální práce KIV/PT Martin Kales Hana Hůlová.
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Algoritmy I Cvičení č. 2. Cíl hodiny Datové typy a přetypování (int, float, double, bool, char, long, short) Konstanty – Celočíselné Desítkové – 15, 0,
Algoritmy I. Cvičení č. 10.
Cvičení 2 Proměnné(jednoduché a složené) a konstanty První program Zápis výrazů.
Algoritmy I Cvičení č. 3.
Algoritmizace a programování
Materiály k přednášce Úvod do programování Ondřej Čepek.
( vstupy a výstupy v Matlabu na konzolu [ do Command Windows]
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
C – strukturované příkazy
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
PB161 – Programování v jazyce C++ Objektově Orientované Programování
Vaše první aplikace V rámci projektu „Cesta k vědě“ (veda.gymjs.net) vytvořil V. Pospíšil a Antonín Šulc. Modifikace a.
Jiří Znoj - zno Tvorba konkordace Algoritmy II 3. projekt, 5. zadání Jiří Znoj - zno
JavaScript Podmínky, cykly a pole.
Cvičení.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
Vstupy a výstupy znaků a) Terminálový vstup a výstup ( getchar(), putchar() ) Přečtěte znak pomocí systémové funkce getchar() a vypište ho pomocí putchar().
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
Datové typy a struktury
Příklady v jazyku C – část 4
Příklady v jazyku C – část 3
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
Výrok „Dostali na to neomezený rozpočet, a podařilo se jim ho překročit …„ (Michael Armstrong, CEO, problém Y2K, )
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Napište program v C pro výpočet plochy obdélníka se stranami A=3 a B=2. Výsledek vytiskněte s patřičným komentářem na obrazovku formátovým příkazem printf.
Gymnázium prof. Jana Patočky Jindřišská Praha 1 „Praha & EU: Investujeme do vaší.
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
Problémy s češtinou České znaky se standardně nepovažují za alfanumerické znaky (\w) Vadí to při třídění vyhodnocování regulárních výrazů Je třeba použít.
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
Příklady v jazyku C – část 1. Výstupy pomocí printf. printf(" Tisk textu \n v apostrofech \n ") ; p=10; printf("%d\n", p) ; /* tisk konstanty */ printf("Tisk.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Příklady v jazyku C – část 2
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část I.
C – procedury Mgr. Lenka Švancarová.
C – if Mgr. Lenka Švancarová. if vývojový diagram Podmínka Příkaz(y) Podmínka Příkaz(y) Úplné větveníNeúplné větvení ++--
Pokročilé datové typy (struktury, unie, dynamické proměnné)
Práce se soubory a řetězci Přednáška č. 9. Práce se soubory v C (1)  Knihovna #include  Knihovna #include  Ukazatel FILE *stream;  Otevření souboru.
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Programování v jazyce C++ Představení jazyků C a C++
Y36PJC Programování v jazyce C/C++
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Algoritmizace a programování
Výukový materiál zpracován v rámci projektu
C# konzole – Podíl dvou čísel, podmínka IF
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Algoritmizace a programování
Programování v jazyce C++
Kurz algoritmizace a programování v jazyce C
Kurz algoritmizace a programování v jazyce C
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Řetězce (24) Funkce strchr: deklarována v: string.h
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Jazyk C++ Přednáška č.2 Proudy, manipulátory Práce se soubory 21.4.2017 C++ Přednáška č.2

Manipulátory Bez parametrů (mohou být i jako bity v flags), patří do virtuální třídy ios S parametry (nutný iomanip) 21.4.2017 C++ Přednáška č.2

ios::flags Jsou to bity enum (ios enumerators) které lze kombinovat bitovou operací OR ( | ). Je to členská funkce std Flags parameter musí mít jednu z následujících hodnot: 21.4.2017 C++ Přednáška č.2

ios::flags (pokrač.) ios::skipws Přeskočit mezeru ve vstupním proudu ios::left   Zarovnat vlevo s použitím výplňových znaků ios::right   Zarovnat vpravo s použitím výplňových znaků ios::internal   Add fill characters after any leading sign or base indication, but before the value. ios::dec   Číselný základ bude 10 (implicitní) ios::oct   Číselný základ bude 8 (octal). ios::hex   Číselný základ bude 16 (hexadecimal). ios::showbase    Použít předponu 0 nebo 0x u oct/hex čísel ios::showpoint   Použít desetinný zápis ios::uppercase   V číslech používat velká písmena (u oct, hex, exponenty) ios::showpos   použít znak + u kladných čísel. ios::scientific   Čísla v plovoucí řádové čárce zobrazit ve vědeckém zápisu. ios::fixed   Použít pevný formát u čísel v plovoucí řádové čárce. ios::unitbuf   Cause ostream::osfx to flush the stream after each insertion. By default, cerr is unit buffered. ios::stdio   Cause ostream::osfx to flush stdout and stderr after each insertion. 21.4.2017 C++ Přednáška č.2

#include <iostream> #include <iomanip> #include <conio.h> #pragma hdrstop using namespace std; //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { int i=234; cout.setf(ios::showbase); // zaradi ox u hex a 0 u oct cout << hex << i << " = " << 123 << oct << 80 << endl; cout.setf(ios::left | ios::uppercase); // zarovnani vlevo + velka pismena cout.width(20); // cirka 20 - prvni cislo cout << hex << i << " = " << 123 << " --- " << oct << 80 << "<<" << endl; cout << hex << i << " = " << 123 << " --- " << oct << 80 << "<<" << endl; while(!kbhit()); return 0; } 21.4.2017 C++ Přednáška č.2

Funkce cout Další členské funkce cout.width(25); //šířka datového výstupu cout.put(znak); // výstup jediného znaku cout.write(něco); // jako operátor << cout.fill(znak); // výplňový znak 21.4.2017 C++ Přednáška č.2

Příklad na funkce cout cout << "Zacatek >"; cout.width(25); cout << 123 << "< Konec\n"; cout.fill('*'); // platí pro 1 následující údaj Vytiskne: Zacatek > 123< Konec Zacatek >**************123< Konec 21.4.2017 C++ Přednáška č.2

Seznam manipulátorů flush – vyprázdní výst. buffer endl – konec řádku a vyprázdní buffer oct – výstup bude osmičkový dec – výstup bude dekadický hex – výstup bude hexa 21.4.2017 C++ Přednáška č.2

manipulátory, které vyžadují iomanip setbase(základ) – nastavuje soustavu výstupu (0,10 – dec; 8- oct; 16 – hex) setw(šířka) – minim. šířka položky setfill(znak) – vyplňovací znak při definované šířce setprecision(přesnost) – přesnost u čísel v pohybl. řádové čárce 21.4.2017 C++ Přednáška č.2

manipulátory, které vyžadují iomanip (pokr.) setiosflags(příznak) – nastavuje jeden nebo více příznaků resetiosflags(příznak) – resetuje jeden nebo více příznaků 21.4.2017 C++ Přednáška č.2

Příznaky ios v manipulátorech setiosflags a re setiosflags ios::left zarovná výstup k zadané šířce doleva ios::right zarovná výstup k zadané šířce doprava ios::interval znaménko je zarovnané doleva, číslo doprava ios::dec desítkový výstup ios::oct osmičkový výstup 21.4.2017 C++ Přednáška č.2

Příznaky ios v manipulátorech setiosflags a resetiosflags (pokr.1) ios::hex hexadecimální výstup ios::showbase přidá 0x k hexa a 0 k osmičkovým výstupům ios::showpoint přidá koncové nuly podle požadované přesnosti ios::uppercase šestnácková čísla a vědecký zápis používají velká písmena 21.4.2017 C++ Přednáška č.2

Příznaky ios v manipulátorech setiosflags a resetiosflags (pokr.2) ios::showpos u kladnýchčísel bude + ios::scientific hodnota s pohyblivou des. čárkou se zobrazuje ve vědeckém zápisu (pouze exponent, nemusí být dělit.3) ios::fixed hodnota s pohyblivou des. čárkou se zobrazuje v desetinném zápisu Existují další, popis hledat s couboru ios a v dokumentaci překladače. 21.4.2017 C++ Přednáška č.2

Funkce pro cin cin.get() – nemá parametr, nelze spojovat cin.get(znak) – lze spojovat 21.4.2017 C++ Přednáška č.2

Příklad int main() { char znak; while ( (znak = std::cin.get()) != EOF) { std::cout << "znak: " << znak << std::endl; } std::cout << "\nHotovo!\n"; return 0; 21.4.2017 C++ Přednáška č.2

Výsledek příkladu: Ahoj - to jsme napsali na klávesnici znak: A znak: h znak: o znak: j ^Z - tím musíme ukončit 21.4.2017 C++ Přednáška č.2

Další fukce cin cin.get(buff, délka) – ukonč. znak zůstává v zásobníku cin.getline(buff,délka) – ukonč. znak se zahazuje; načte celý řádek včetně mezer 21.4.2017 C++ Přednáška č.2

Příklad cin.get(), cin.getline() #include <iostream> using namespace std; int main() { char retezecJedna[256]; char retezecDva[256]; char retezecTri[256]; 21.4.2017 C++ Přednáška č.2

pokr. cout << "Zadejte prvni retezec: "; cin.getline(retezecJedna,256); cout << "retezecJedna: " << retezecJedna << endl; cout << "Zadejte druhy retezec: "; cin >> retezecDva; cout << "retezecDva: " << retezecDva << endl; cout << "Zadejte treti retezec: "; cin.getline(retezecTri,256); cout << "retezecTri: " << retezecTri << endl; return 0; } 21.4.2017 C++ Přednáška č.2

Výsledek: Zadejte první retezec: jedna dva tri retezecJedna: jedna dva tri Zadejte druhy retezec: ctyry pet šest retezecDva: ctyry Zadejte treti retezec: retezecTri: pet sest 21.4.2017 C++ Přednáška č.2

Funkce cin.ignore() cin.ignore(maxpočet,’\n’) – zahodí maximálně určený počet znaků až do konce řádku 21.4.2017 C++ Přednáška č.2

funkce peek() a putback() cin.peek() – načte znak, ale ponechá jej ve vstupním proudu (můžeme jej načíst znovu) cin.putback() – vloží znak do vstupního proudu 21.4.2017 C++ Přednáška č.2

Příklad int main() { char znak; cout << "Zadejte vetu: "; while ( cin.get(znak) ) { if (znak == '!') // vymění znak ! za $ cin.putback('$'); else cout << znak; while (cin.peek() == '#') // na4te znak, ale ponechá jej v proudu cin.ignore(1,'#'); } return 0; 21.4.2017 C++ Přednáška č.2

Výsledek: Zadejte vetu: Prave!ted#je!cas#pobavit!se# (Vymění vykřičníky za dolar a vyhodí #) 21.4.2017 C++ Přednáška č.2

Práce se soubory knihovna <fstream> ofstream fout(nazevSouboru);//otevřít pro zápis ifstream fin(nazevSouboru); //otevření pro čtení zavírání: fout.close(); fin.close(); 21.4.2017 C++ Přednáška č.2

Funkce pro práci se soubory fout() - jako cout, ale do souboru fin.get(znak) fin.ignore(1,'\n'); fin.getline(buffer,255); 21.4.2017 C++ Přednáška č.2

Příklad práce se soubory #include <fstream> #include <iostream> using namespace std; int main() { char nazevSouboru[80]; char buffer[255]; // pro zadání uživatele cout << "Nazev souboru: "; cin >> nazevSouboru; ofstream fout(nazevSouboru); // otevřít pro zápis fout << "Tento radek se primo zapise do souboru...\n"; cout << "Zadejte text souboru: "; 21.4.2017 C++ Přednáška č.2

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í 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(); // pozornost se vždy vyplatí return 0; } 21.4.2017 C++ Přednáška č.2

Funkce pro práci se soubory fout() - jako cout, ale do souboru fin.get(znak) fin.ignore(1,'\n'); fin.getline(buffer,255); 21.4.2017 C++ Přednáška č.2