C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Wstęp do strumieni danych
Ćwiczenie (1) Dostosuj poniższy program do potrzeb zdefiniowanych w treści programu zaliczeniowego: #include void dodaj(){}; void edytuj(){}; void usun(){};
Programowanie wizualne PW – LAB6 Wojciech Pieprzyca.
Programowanie obiektowe PO PO - LAB 6 Wojciech Pieprzyca.
Prowadzący: mgr inż. Elżbieta Majka
Filip Andrzejewski Remigiusz Chiluta
Zakres i zasięg deklaracji Zakres : obszar programu, w którym identyfikator może być użyty zakres globalny : cały program zakres lokalny : definicja pojedynczej.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Programowanie w C Wykład 3
Język ANSI C Operacje we/wy
#include #include main () { cout
Wprowadzenie do programowania w języku Turbo Pascal
Programowanie obiektowe W2
Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty.
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Podstawy informatyki (4)
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Podstawy Programowania
Zadanie Dev C++.
Przekazywanie argumentów
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Programowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Programowanie strukturalne i obiektowe
Instrukcja for. Instrukcja warunkowa mgr inż. Agata Pacek.
1 Strumienie Hierarchie klas strumieniowych, strumienie bajtowe - klasy InputStream i OutputStream i ich metody, klasa File, strumienie plikowe, strumienie.
PWSZ Gniezno // codefly 2009 Łukasz Tomczak
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Programowanie strukturalne i obiektowe C++
Podstawy programowania II Wykład 3: Obsługa plików w stdio.h.
Programowanie strukturalne i obiektowe C++ Przeładowanie operatorów Robert Nowak.
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
Programowanie strukturalne i obiektowe C++ Powtórzenie wiadomości z C++ Robert Nowak.
Pliki tekstowe – odczyt i zapis Zajęcia 11. Zapis do pliku tekstowego Prosty program pokazujący sposób zapisu do pliku tekstowego: // writing on a text.
PO13-1 / 19 Wykład 13 Wyjątki i ich zgłaszanie Wyłapywanie wyjątków Obsługa wyjątków Wykorzystanie polimorfizmu Filtrowanie wyjątków Błędy w konstruktorach.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Podstawy informatyki Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Wstęp do programowania Wykład 8 Łańcuchy, struktury i pliki Metoda dziel i zwyciężaj Metoda zachłanna.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Podstawy informatyki Operacje we/wy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
Podstawy informatyki Struktury Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Operacje we/wy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Programowanie I Rekurencja.
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
Strumienie w języku Java Bartosz Walter InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji:
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Przypomnienie wiadomości – kilka zadań
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Podstawy informatyki Operacje we/wy
Operacje na plikach w C++
Operacje na plikach w C++
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Język C++ Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

C++ mgr inż. Tomasz Turba Politechnika Opolska 2016

Zajęcia [ ]  Debuggowanie (Dev-C++?)  Operacje na plikach  Zadanie domowe

Debuggowanie  Dwuklik -> breakpoint  Add watch -> zmienna  Kompilator –g (Tools > Compiler Options)  F5

Operacje na plikach 1. Dyrektywa file stream -> #include 2. Uchwyt (obiekt) do przechowania obsługi pliku -> std::ifstream plik; 3. Otwarcie pliku – ścieżka -> plik.open( "C:\\odczyt.txt" ); 4. Ścieżka względna -> („odczyt.txt”); 5. Ścieżka bezwzględna -> „C:\\odczyt.txt”); 6. Backslash w pełnej ścieżce! 7. Weryfikacja otwarcia 8. Przekazanie i modyfikacja zawartości 9. Zapis 10. Zamknięcie 11. Weryfikacja zamknięcia

#include bool wyswietl(std::string nazwapliku) { std::ifstream plik; plik.open(nazwapliku.c_str()); if(!plik.good()) return false; std::string wiersz; while(std::getline(plik, wiersz)) { std::cout << wiersz << std::endl; } plik.close(); return true; } int main() { if( !wyswietl( "pliczek.txt")) std::cout << "Plik nie istnieje lub problem z otwarciem" << std::endl; return 0; }

Operator „>>” – spróbuj zrobić taki program Dane można wczytywać operatorem >>, biały znak zawsze jest pomijany (wskazówka: isspace) Stwórz plik: 1 dodac 2 2 dodac 3 Podpowiedzi: int a, c; string b; Podpowiedź: plik >> a >> b >> c; funkcja(int l1, string z, intl2) {if z=„dodac” dodaj(l1, l2)}

Operator „>>” – spróbuj zrobić taki program Dane można wczytywać operatorem >>, biały znak zawsze jest pomijany (wskazówka: isspace) Stwórz plik: 1 dodac 2 2 dodac 3 Podpowiedzi: int a, c; string b; Podpowiedź: plik >> a >> b >> c; funkcja(int l1, string z, intl2) {if z=„dodac” dodaj(l1, l2)}

IOS – tryby odczytu void open(const char * nazwa_pliku, ios_base::openmode tryb_otwarcia_pliku); ios::app (append - dopisywanie danych do pliku) Ustawia wewnętrzny wskaźnik zapisu pliku na jego koniec. Plik otwarty w trybie tylko do zapisu. Dane mogą być zapisywane tylko i wyłącznie na końcu pliku. ios::ate (at end) Ustawia wewnętrzny wskaźnik pliku na jego koniec w chwili otwarcia pliku. ios::binary (binary) Informacja dla kompilatora, aby dane były traktowane jako strumień danych binarnych, a nie jako strumień danych tekstowych. ios::in (input - wejście/odczyt) Zezwolenie na odczytywanie danych z pliku. ios::out (output - wyjście/zapis) Zezwolenie na zapisywanie danych do pliku. ios::trunc (truncate) Zawartość pliku jest tracona, plik jest obcinany do 0 bajtów podczas otwierania.

IOS cd Otwarcie do zapisu i odczytu: std::fstream plik; plik.open( "nazwa_pliku.txt", std::ios::in | std::ios::out );

Zapis std::fstream plik("nazwa_pliku.txt", std::ios::out); std::string napis; getline(std::cin, napis); plik.write( & napis[0], napis.length() );

Zapis #include using namespace std; int main() { string const nazwaPliku("C:/pliczek.txt"); ofstream mojStrumien(nazwaPliku.c_str()); if(mojStrumien) { mojStrumien << "Przykladowe zdanie zapisane do pliku." << endl; mojStrumien << << endl; int age(30); mojStrumien << "Mam " << age << " lat." << endl; } else { cout << „Error!” << endl; } return 0; }

Sposoby odczytu Linijka po linijce: string linia; getline(strumien, linia); Zmiennymi: double liczba; strumien >> liczba string slowo; strumien >> slowo; Char by char: char a; strumien.get(a);

Poruszanie się po pliku Seekg(); Seekp(); strumien.seekp(liczbaZnakow, pozycja); strumien.seekp(10, ios::beg); //przesun 10 znaków od początku pliku i ustaw tu kursor Tellg(); Tellp(); ofstream plik("C:/sciezka/pliczek.dat"); int pozycja = plik.tellp(); cout << „Jestes na znaku nr " << position << " w pliku." << endl; Pozycja = ios::beg — początek pliku ios::end — koniec pliku ios::cur — bieżąca pozycja

Zadanie domowe  1. Napisz program sprawdzający długość w bajtach podanego z palca pliku [1 pkt]  Wprowadź nazwę pliku: plik1.txt  Długość plik1.txt wynosi: 133  Podpowiedź: seekg, tellg  2. Przerób zadanie domowe ze strukturami na operacje na plikach [4pkt]  Pierwsze uruchomienie: dodanie pracowników z parametrami do pliku  Drugie uruchomienie: jeżeli plik istnieje – wyświetl dane i w menu zaproponuj dopisanie kolejnego pracownika  Sortowanie przez wiek, stawkę, wynagrodzenie nadal obowiązuje  Wykorzystaj append, seek, tellp, może tablica…?