Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

Podobne dokumenty
Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

Operacje wejścia/wyjścia (odsłona druga) - pliki

C++ - [3-5] Pliki i strumienie w C++

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Pliki wykład. Dorota Pylak

C++ - szablony. C++ - szablony. C++ - szablony. C++ - szablony. C++ - szablony. C++ - szablony

Pliki wykład. Dorota Pylak

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Pliki wykład 2. Dorota Pylak

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

Pliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string)

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Podstawy Programowania

Wykład 2 Operacje wejściawyjścia. Ewa Gajda

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Wykład :37 PP2_W9

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Referencje. Zasady zaliczeń. Zasady zaliczeń. Zasady zaliczeń. Zasady zaliczeń. Zaawansowane Programowanie Obiektowe. Informacje organizacyjne:

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Wejście wyjście strumieniowe

jest mocny, skoro da się w nim wyrazić nowe pojęcia; łatwiej przenieść go na nową platformę jest mniejszy.

Programowanie i struktury danych

Projektowanie klas c.d. Projektowanie klas przykład

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Język C++ Różnice między C a C++

Wstęp do programowania. Dariusz Wardecki, wyk. X

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

1 Strumienie. 2 Pliki. 2.1 Zapis do pliku tekstowego. Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski

Programowanie Obiektowe i C++

Operacje wejścia/wyjścia odsłona pierwsza

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

C++ - szablony. C++ - szablony. C++ - szablony. C++ - szablony SZABLONY SZABLONY FUNKCJI

Język C++ wykład VIII

dr inż. Jarosław Forenc

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Programowanie w językach

Wprowadzenie do programowania i programowanie obiektowe

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Programowanie Procedurale. Pliki w języku C++

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Operacje na plikach (niskiego poziomu) < IO.H >

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Część 4 życie programu

Klasa iostream... 1 Klasy ofstream, ifstream Struktura FILE... 8

Wstęp do Programowania, laboratorium 02

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Programowanie obiektowe

Zasady programowania Dokumentacja

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Funkcje zawarte w bibliotece < io.h >

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Dziedziczenie & W slajdach są materiały zapożyczone z

C++ wprowadzanie zmiennych

Podstawy programowania w C++

I znowu można jak w C, za pomocą starych struktur i metod:

Funkcje zawarte w bibliotece < io.h >

Podstawy programowania skrót z wykładów:

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Kurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

ZASADY PROGRAMOWANIA KOMPUTERÓW

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Programowanie komputerowe. Zajęcia 4

Techniki Programowania wskaźniki 2

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Podstawy programowania w języku C++

Języki programowania obiektowego Nieobiektowe elementy języka C++

Wstęp do Programowania 2

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

C++ - strumienie. C++ - strumienie. C++ - strumienie. C++ - strumienie. C++ - strumienie STRUMIENIE

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Programowanie w języku C++

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Transkrypt:

Programowanie w C++ Wykład 11 Katarzyna Grzelak 21 maja 2018 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

Strumienie Strumień bajtów płynacy od źródła do ujścia: 1 standardowe strumienie wejściowe i wyjściowe (klawiatura, ekran) 2 strumienie zwiazane z plikami 3 strumienie zapisujace do/czytajace z obiektu string K.Grzelak (Wykład 11) Programowanie w C++ 2 / 24

Sprawdzanie stanu strumienia Przykłady problemów: plik, z którego chcieliśmy czytać nie istnieje chcieliśmy wczytać liczbę, a w strumieniu pojawił się napis za mało miejsca na dysku, żeby zapisać plik... K.Grzelak (Wykład 11) Programowanie w C++ 3 / 24

Sprawdzanie stanu strumienia - flagi W każdym obiekcie klasy strumień jest flaga przechowujaca aktualny stan strumienia. goodbit wszystko OK eofbit napotkany znak końca pliku failbit bład, ale nie krytyczny, po wyzerowaniu flagi strumień nadaje się do dalszej pracy badbit bład krytyczny K.Grzelak (Wykład 11) Programowanie w C++ 4 / 24

Sprawdzanie stanu strumienia Funkcje do sprawdzania flagi błędu: Funkcja przykład bool good() while(cin.good()) bool eof() if(fileinp.eof()) bool fail() if(cin.fail()) lub if(!cin) if(!cin.fail()) lub if(cin) bool bad() if(fileout.bad()) Metoda clear() kasuje wszystkie flagi błędu. K.Grzelak (Wykład 11) Programowanie w C++ 5 / 24

Sprawdzanie stanu strumienia Rezultatem wyrażenia cin» liczba; lub fileinp» liczba; jest referencja do danego strumienia. Jeśli operacja się nie powiedzie to rezultatem jest zero (NULL). Dlatego stan strumienia można sprawdzać też tak: if(cin»liczba) {...} albo if(fileinp»liczba) {...} Kaskadowe instrukcje! K.Grzelak (Wykład 11) Programowanie w C++ 6 / 24

Pliki - przypomnienie Plik nagłówkowy #include<fstream> ifstream - klasa do czytania z pliku ofstream - klasa do pisania do pliku K.Grzelak (Wykład 11) Programowanie w C++ 7 / 24

Przypomnienie: Klasa ofstream - do pisania do plików Analogicznie do cout: ofstream fileout( out.txt ); fileout1 «Tekst «endl; fileout1 «M_PI ««M_PI*M_PI «endl; fileout1.close(); K.Grzelak (Wykład 11) Programowanie w C++ 8 / 24

Przypomnienie: Klasa ifstream - do czytania z plików Nazwa pliku wczytywana z klawiatury: cout «Podaj nazwe pliku «endl; string nazwa; cin» nazwa; ifstream fileinp(nazwa.c_str()); W standardzie C++11, w klasach ifstream, ofstream istnieje już konstruktor przyjmujacy argument klasy string. W OKWF kompilacja z opcja: g++ -std=c++11 -o prog prog.cc ifstream fileinp(nazwa); K.Grzelak (Wykład 11) Programowanie w C++ 9 / 24

Przypomnienie: Klasa ifstream - do czytania z plików Dobre praktyki: Po otwarciu pliku do czytania od razu sprawdzanie czy plik istnieje. ifstream fileinp(nazwa); if(fileinp.fail()){ cout «Brak pliku «endl; return 1; } Po każdej operacji czytania od razu sprawdzanie czy dobry stan strumienia. K.Grzelak (Wykład 11) Programowanie w C++ 10 / 24

Przypomnienie: Klasa ifstream - do czytania z plików Analogicznie do cin: ifstream fileinp( inp.txt ); int liczba; while(true){ fileinp1» liczba; if(fileinp1.fail()){ break; } } lub while(fileinp1» liczba){ cout «Wczytana liczba = «liczba «endl; } K.Grzelak (Wykład 11) Programowanie w C++ 11 / 24

Użyteczna funkcja nie będaca składowa klasy getline(strumien inp, string linia, char separator= \n ); Do wczytywania ze strumienia do stringu całej linii (do znaku separatora - domyślnie do znaku nowej linii) Przykłady string linia; getline(cin,linia); ifstream fileinp( data.txt ); getline(fileinp,linia); K.Grzelak (Wykład 11) Programowanie w C++ 12 / 24

Wybrane klasy z biblioteki standardowej klasy ostringstream i istringstream K.Grzelak (Wykład 11) Programowanie w C++ 13 / 24

Klasa ostringstream Strumień zapisujacy do obiektu klasy string #include<sstream> Strumień zamiast do pliku płynie do określonego obszaru w pamięci Po co? Np. można łatwo wpisać liczby do obiektu klasy string Obiekt klasy ostringstream: ostringstream s1; ostringstream s1(ios::app); ostringstream s1("uwaga",ios::app); K.Grzelak (Wykład 11) Programowanie w C++ 14 / 24

Klasa ostringstream Strumień zapisujacy do obiektu klasy string Przykład zapisywania do strumienia (podobnie jak dla cout): int rok=2018; string nazwa= symulacje ; string miesiac= maj ; int dzien=14; ostringstream s1; s1 «nazwa «dzien «miesiac «rok; Funkcja zwracajaca obiekt klasy string: string s=s1.str(); K.Grzelak (Wykład 11) Programowanie w C++ 15 / 24

Klasa istringstream Strumień czytajacy z obiektu klasy string #include<sstream> Strumień który płynie od obiektu klasy string Po co? Np. chcemy z napisu wyodrębnić liczby (argumenty funkcji main!) Obiekt klasy istringstream: string tekst( 14 05 2018 poniedziałek ); istringstream s1; istringstream s1(tekst); K.Grzelak (Wykład 11) Programowanie w C++ 16 / 24

Klasa istringstream Strumień czytajacy z obiektu klasy string Czytanie ze strumienia (podobnie jak dla cin): int dzien, miesiac, rok; string dzien_tygodnia; s1» dzien» miesiac» rok» dzien_tygodnia; K.Grzelak (Wykład 11) Programowanie w C++ 17 / 24

Użycie istringstream argumenty funkcji main...... czyli parametry z linii wywołania programu Przypomnienie Deklaracje funkcji main 1 int main() 2 int main(int argc,char* argv[]) K.Grzelak (Wykład 11) Programowanie w C++ 18 / 24

Użycie istringstream argumenty funkcji main...... czyli parametry z linii wywołania programu Przypomnienie Deklaracje funkcji main 1 int main() 2 int main(int argc,char* argv[]) 3 int main(int argc,char** argv) K.Grzelak (Wykład 11) Programowanie w C++ 19 / 24

Użycie istringstream argumenty funkcji main... Przypomnienie argc licznik parametrów wywołania (łacznie z nazwa programu) argv tablica wskaźników do ciagów znaków (C-string) K.Grzelak (Wykład 11) Programowanie w C++ 20 / 24

Użycie istringstream argumenty funkcji main... Przypomnienie Przykładowe uruchomienie programu g++ -o prog prog.cc./prog kwadrat 15.5 K.Grzelak (Wykład 11) Programowanie w C++ 21 / 24

Użycie istringstream argumenty funkcji main... Kompletny przykład użycia klasy istringstream do zamiany argumentu funkcji main na liczbę. Poczatek programu. K.Grzelak (Wykład 11) Programowanie w C++ 22 / 24

Użycie istringstream argumenty funkcji main... Zamiana napisu na liczbę. Środek programu. K.Grzelak (Wykład 11) Programowanie w C++ 23 / 24

Użycie istringstream argumenty funkcji main... Generacja znaków i zapisywanie ich do pliku i na ekran. Koniec programu. K.Grzelak (Wykład 11) Programowanie w C++ 24 / 24