Programování v jazyce C++ Pokročilý vstup a výstup.

Slides:



Advertisements
Similar presentations
Název operačního programu: OP Vzdělávání pro konkurenceschopnost, oblast podpory 1.5 Registrační číslo projektu:CZ.1.07/1.5.00/ Název projektu:Zvyšování.
Advertisements

ADABOOST Detekce objektu v obraze. Obsah Úvod do problému Řešení Reálné příklady.
Název školy Základní škola Domažlice, Komenského 17 Číslo projektu CZ.1.07/1.4.00/ Název projektu „EU Peníze školám ZŠ Domažlice“ Číslo a název.
IOStreams CNS 3370 Copyright 2003, Fresh Sources, Inc.
File I/O in C++. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk);is stored on a secondary storage device.
1 Engineering Problem Solving With C++ An Object Based Approach Chapter 4 Programming with Data Files.
FILE OPEN MODES File open modes n ios::app n ios::ate n ios::binary n ios::in n ios::out n ios::trunc n ios::nocreate n ios::noreplace.
CS-212 C++ I/O Dick Steflik. C++ I/O Modeled after UNIX’s concept of a “stream” –conceptionally a stream is a continuous flow of characters/bytes from.
17 File Processing. OBJECTIVES In this chapter you will learn:  To create, read, write and update files.  Sequential file processing.  Random-access.
1 File I/O In C++, I/O occurs in streams. A stream is a sequence of bytes Each I/O device (e.g. keyboard, mouse, monitor, hard disk, printer, etc.) receives.
Streams, Files. 2 Stream Stream is a sequence of bytes Input stream In input operations, the bytes are transferred from a device to the main memory Output.
CSCE 121: Introduction to Program Design and Concepts J. Michael Moore Fall 2014 Set 11: More Input and Output 1 Based on slides created by Bjarne.
Sayed Ahmed Just E.T.C Technologies Inc. Just E.T.C. Education Inc.
Dale Roberts 1 Department of Computer and Information Science, School of Science, IUPUI Dale Roberts, Lecturer Computer Science, IUPUI
Copyright © 2014, 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Eighth Edition by Tony Gaddis,
C++ Lecture 8 Monday, 25 August I/O, File, and Preprocessing l An in-depth review of stream input/output l File handling in C++ l C++ preprocessing.
C++ for Engineers and Scientists Second Edition Chapter 8 I/O File Streams and Data Files.
FILE HANDLING IN C++.
File handling in C++ BCA Sem III K.I.R.A.S. Using Input/Output Files Files in C++ are interpreted as a sequence of bytes stored on some storage media.
 2003 Prentice Hall, Inc. All rights reserved. 1 IS 0020 Program Design and Software Tools Stack/Queue - File Processing Lecture 10 March 29, 2005.
I/O in C++ October 7, Junaed Sattar. Stream I/O a stream is a flow of bytes/characters/ints or any type of data input streams: to the program output.
C++ Streams © Bruce M. Reynolds & Cliff Green, C++ Programming Certificate University of Washington Cliff Green.
C++ FILE I/O.
FILE I/O IN C++. Using Input/Output Files A computer file  is stored on a secondary storage device (e.g., disk);  is permanent;  can be used to provide.
C++ Programming: chapter 6 – iostream 2014, Spring Pusan National University Ki-Joune Li 1.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 12 Advanced File Operations.
DCT1063 Programming 2 CHAPTER 3 FILE INPUT AND FILE OUTPUT Mohd Nazri Bin Ibrahim Faculty of Computer, Media & Technology TATi University College
Streams, and File I/O Review. STREAMS Review STREAMS Streams are sequences of bytes. C++ I/0 occurs in streams Input – bytes flow from device to memory.
CS  Inserters and Extractors  Stream State  Files Streams  String Streams  Formatting  Manipulators  Internationalization.
1 CSC241: Object Oriented Programming Lecture No 32.
File Handling in C++.
File Processing Files are used for data persistance-permanent retention of large amounts of data. Computer store files on secondary storage devices,such.
C++ Programming: chapter 6 – iostream 2015, Spring Pusan National University Ki-Joune Li 1.
Declaring fstream Objects An istream object named cin connects program and keyboard An ostream object named cout connects the program and the screen These.
Exploring the C++ Stream Library Copyright 2006 Oxford Consulting, Ltd1 February IO Streams  IOStreams are part of the Standard C++ library.
CSCI 333 Data Structures I/O with C++ 20 October, 2003.
Lecture 14 Arguments, Classes and Files. Arguments.
FILE HANDLING(WORKING WITH FILES) FILE- A file is a collection of related data stored in a particular area on the disk. STREAMS- interface between the.
File I/O in C++ I. Using Input/Output Files A computer file is stored on a secondary storage device (e.g., disk); is permanent; can be used to provide.
CSE 232: Moving Data Within a C++ Program Moving Data Within a C++ Program Input –Getting data from the command line (we’ve looked at this) –Getting data.
KBD Program with file I/O Operation File Disk Program with file I/O Operation Screen Cin Cout.
Ms N Nashandi Dr SH Nggada 2016/01/03Ms N Nashandi and Dr SH Nggada1 Week 6 -File input and output in C++
Programming II I/O Streams and Data Files 1(c) Asma AlOsaimi.
Základní škola a Mateřská škola Bílá Třemešná, okres Trutnov Autor: Mgr. Petr Tomek Datum/období: podzim 2013 Číslo projektu: CZ.1.07/1.4.00/ Téma.
1.2 Paměti základní desky. paměť - obecně  slouží k uchování dat a programů  množství informací, které je do paměti možné uložit, se nazývá kapacita.
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Vladimír Mikulík. Slezské gymnázium, Opava, příspěvková organizace. Vzdělávací materiál.
CS212: Object Oriented Analysis and Design
CS212: Object Oriented Analysis and Design
Chapter 8 CS 3370 – C++ I/O Classes.
Chapter 14: Sequential Access Files
Programming with ANSI C ++
Tutorial4us.com File Handling in C++ Tutorial4us.com.
What is a File? A file is a collection on information, usually stored on a computer’s disk. Information can be saved to files and then later reused.
CISC/CMPE320 - Prof. McLeod
CPSC 231 D.H. C++ File Processing
FILE HANDLING IN C++.
File I/O Streams, files, strings 1 1.
17 File Processing.
آشنایی با ساختارها و کار با فایلها
files Dr. Bhargavi Goswami Department of Computer Science
Programming with Data Files
Chapter 13: Advanced File and I/O Operations
Tutorial4us.com. File A file is a collection of related data stored in a particular area on the disk. The data is stored in disk using the concept of.
C++ FileIO pepper.
Topics Input and Output Streams More Detailed Error Testing
File I/O.
C++ Programming: chapter 6 – iostream
C++ Programming Lecture 8 File Processing
ENERGY 211 / CME 211 Lecture 9 October 10, 2008.
File I/O in C++ II.
Presentation transcript:

Programování v jazyce C++ Pokročilý vstup a výstup

OpakováníOpakování abstraktní třídy, abstraktní třídy, třídní ukazatele, třídní ukazatele, statické metody a položky, statické metody a položky, principy přetěžování operátorů, principy přetěžování operátorů, přetížení post-/preinkrementu, přetížení post-/preinkrementu, přetěžování operátorů ->, [], (), přetěžování operátorů ->, [], (), přetěžování operátorů new a delete. přetěžování operátorů new a delete.

Práce se soubory v C nejprve je třeba vytvořit proměnnou typu pointer na objekt typu FILE, nejprve je třeba vytvořit proměnnou typu pointer na objekt typu FILE, této proměnné je nutné přiřadit pointer na konkrétní místo do konkrétního souboru, této proměnné je nutné přiřadit pointer na konkrétní místo do konkrétního souboru, nyní můžeme číst/zapisovat data z/do souboru: nyní můžeme číst/zapisovat data z/do souboru: – znakový vstup/výstup, – formátovaný vstup/výstup, nakonec OS oznámíme, že již soubor nebudeme používat. nakonec OS oznámíme, že již soubor nebudeme používat.

Otevření souboru soubor otevřeme pomocí funkce fopen, soubor otevřeme pomocí funkce fopen, funkce má dva parametry: funkce má dva parametry: – název souboru uloženého na disku (nikoliv název proměnné), – režim otevření souboru, funkce vrací ukazatel na začátek či konec (režim připisování) souboru, funkce vrací ukazatel na začátek či konec (režim připisování) souboru, otevřeme-li soubor pro zápis, jeho obsah se nejprve vymaže, otevřeme-li soubor pro zápis, jeho obsah se nejprve vymaže, nepodaří-li se soubor otevřít, vrací se NULL, nepodaří-li se soubor otevřít, vrací se NULL,

Režimy otevření souboru rozlišujeme tři základní režimy otevření souboru: rozlišujeme tři základní režimy otevření souboru: – r – čtení, – w – zápis nebo přepsání, – a – připsání, – r+ – čtení a zápis, – w+ – čtení, zápis nebo přepsání, – a+ – čtení nebo zápis na konec souboru, ty ještě můžeme rozšířit o b, čímž říkáme, že budeme pracovat s binárním souborem, ty ještě můžeme rozšířit o b, čímž říkáme, že budeme pracovat s binárním souborem,

Znakový vstup a výstup mějme proměnné: mějme proměnné: – FILE *f; – char c; vstup: vstup: – c = getc(f); výstup: výstup: – putc(c, f); vrácení znaku do bufferu: vrácení znaku do bufferu: – ungetc(c, f);

Testování konce řádky při znakovém čtení souboru si konec řádky musí hlídat programátor, při znakovém čtení souboru si konec řádky musí hlídat programátor, na různých systémech jsou řádky v souboru ukončeny různě, na různých systémech jsou řádky v souboru ukončeny různě, jazyk C poskytuje standardní symbol ’\n’, který je nezávislý na platformě, jazyk C poskytuje standardní symbol ’\n’, který je nezávislý na platformě, použití: použití: – while((c=getc(f)) != ’\n’)

Testování konce souboru k testování konce souboru lze využít dvou možností: k testování konce souboru lze využít dvou možností: – symbolická konstanta EOF, – makro feof() – vrací TRUE při čtení za koncem souboru, použítí: použítí: – while ((c=getc(f)) != EOF) … – while ((c=getc(f)), !feof(f)) …

Formátovaný vstup a výstup vstup: vstup: – fscanf(f, ”%d”, &c); výstup výstup – fprintf(f, ”%d”, c); funkce fscanf() opět vrací počet úspěšně načtených položek, funkce fscanf() opět vrací počet úspěšně načtených položek, fprintf() vrací počet vypsaných znaků, fprintf() vrací počet vypsaných znaků, takto lze testovat konec souboru v případě, že předem známe jeho formát. takto lze testovat konec souboru v případě, že předem známe jeho formát.

Další možnosti pro binární soubory s binárními soubory mohu pracovat stejně jako s textovými, pokud si zapisovaný obsah předem připravím po bytech, s binárními soubory mohu pracovat stejně jako s textovými, pokud si zapisovaný obsah předem připravím po bytech, můžu též použít následující funkce: můžu též použít následující funkce: – fread(kam, velikost, počet, soubor); – fwrite(odkud, velikost, počet, soubor); obě funkce vrací počet úspěšně načtených a zapsaných položek. obě funkce vrací počet úspěšně načtených a zapsaných položek.

Posun v binárním souboru k posunu ukazovátka slouží funkce fseek() : k posunu ukazovátka slouží funkce fseek() : – fseek(soubor, posun, odkud), odkud je jedna ze tří hodnot: odkud je jedna ze tří hodnot: – SEEK_SET, – SEEK_CUR, – SEEK_END, aktuální pozici lze získat funkcí ftell(), aktuální pozici lze získat funkcí ftell(), v případě úspěšného posunu vrací 0, v případě neúspěšného vrací nenulovou hodnotu. v případě úspěšného posunu vrací 0, v případě neúspěšného vrací nenulovou hodnotu.

Vstupy a výstupy v C++ v C++ je možné používat nástroje jazyka C, v C++ je možné používat nástroje jazyka C, vhodnější je však používat vstupních a výstupních proudů: vhodnější je však používat vstupních a výstupních proudů: – jsou založeny na objektech, – jsou bezpečnější, – lze je snadno upravovat a rozšiřovat, – možno přetížit operátory >, – lze vytvářet nové manipulátory.

Datové proudy základní datový proud je ios_base, základní datový proud je ios_base, o něho jsou odvozeny istream, ostream, iostream, o něho jsou odvozeny istream, ostream, iostream, ve standardní knihovně jsou definovány instance: ve standardní knihovně jsou definovány instance: – cin (typu istream), – cout, cerr, clog (typu ostream), jsou definovány v souboru iostream. jsou definovány v souboru iostream.

Další proudové třídy v hlavičkovém souboru fstream : v hlavičkovém souboru fstream : – ifstream, ofstream, fstream, v hlavičkovém souboru sstream : v hlavičkovém souboru sstream : – istringstream, ostringstream, – stringstream, v hlavičkovém souboru strstrea : v hlavičkovém souboru strstrea : – istrstream, ostrstream, strstream, – zastaralé.

Práce se soubory v C++ nejprve je třeba vytvořit instanci třídy ofstream, ifstream nebo fstream, nejprve je třeba vytvořit instanci třídy ofstream, ifstream nebo fstream, konstruktor má parametry: konstruktor má parametry: – jméno souboru, – režim otevření, možné režimy: možné režimy: – ios::in, ios::out, ios::app, ios::ate, – ios::binary, ios::trunc. – režimy lze kombinovat pomocí |.

Práce se soubory v C++ proud můžeme uzavřít pomocí metody close(), proud můžeme uzavřít pomocí metody close(), lze jej pak kdykoliv otevřít pomocí metody open() : lze jej pak kdykoliv otevřít pomocí metody open() : – ta má stejné parametry jako konstruktor, k ověření, zda se poslední akce povedla, můžeme použít přetížený operátor ! : k ověření, zda se poslední akce povedla, můžeme použít přetížený operátor ! : – vrací FALSE, pokud se vše povedlo, TRUE, došlo-li k chybě, proud je možné předat funkci jako parametr: proud je možné předat funkci jako parametr: – protože obsah proudu měníme, předáváme jej odkazem.

Práce s binárními soubory ke čtení z binárního souboru slouží metoda read() se dvěma parametry: ke čtení z binárního souboru slouží metoda read() se dvěma parametry: – adresa proměnné, do níž načteme hodnotu, přetypovaná na (char*), – velikost, k zápisu do binárního souboru slouží metoda write() se dvěma parametry: k zápisu do binárního souboru slouží metoda write() se dvěma parametry: – adresa proměnné, z níž zapisujeme, přetypovaná na (char*), – velikost,

Pohyb po binárním souboru k dispozici máme čtecí a zapisovací ukazovátko, k dispozici máme čtecí a zapisovací ukazovátko, při přečtení či zápisu se dané ukazovátko o daný počet bytů posune, při přečtení či zápisu se dané ukazovátko o daný počet bytů posune, k ručnímu posunu slouží metody: k ručnímu posunu slouží metody: – seekp() a seekg(), k zjištění pozice slouží metody: k zjištění pozice slouží metody: – tellp() a tellg().

Přetěžování operátorů > operátory definujeme jako (spřátelenou) funkci, operátory definujeme jako (spřátelenou) funkci, první parametr je proud předávaný odkazem, první parametr je proud předávaný odkazem, druhý parametr je instance typu, pro něhož chceme operátor přetížit (zpravidla const ), druhý parametr je instance typu, pro něhož chceme operátor přetížit (zpravidla const ), oba operátory vrací referenci na upravený proud, oba operátory vrací referenci na upravený proud, tyto operátory je možné přetížit i pro jiné než proudové typy. tyto operátory je možné přetížit i pro jiné než proudové typy.

Manipulátory slouží pro řízení vstupní a výstupní konverze. slouží pro řízení vstupní a výstupní konverze. jsou definovány v souboru. jsou definovány v souboru. některé manipulátory: některé manipulátory: – hex, dec, oct, – showpoint, noshowpoint, – fixed, scientific, – setw(int n), setfill(int c), setprecision(int n) je možné vytvářet i další manipulátory. je možné vytvářet i další manipulátory.

DĚKUJI ZA POZORNOST Dost bylo programování…

Použitá literatura Pavel Herout – Učebnice jazyka C, Pavel Herout – Učebnice jazyka C, Miroslav Virius – Od C k C++, Miroslav Virius – Od C k C++, Slajdy na předmět X36PJC z akademického roku 2008/2009 (Ladislav Vágner, Karel Müller), FEL ČVUT, Slajdy na předmět X36PJC z akademického roku 2008/2009 (Ladislav Vágner, Karel Müller), FEL ČVUT, Slajdy na předmět 36PJC z akademického roku 2004/2005 (Petr Matyáš), FEL ČVUT, Slajdy na předmět 36PJC z akademického roku 2004/2005 (Petr Matyáš), FEL ČVUT, Server Server