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

Podobne dokumenty
Programowanie i struktury danych

Programowanie w językach

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

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

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

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

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

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

Wejście wyjście strumieniowe

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

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

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

1. Wprowadzenie do C/C++

Programowanie Procedurale. Pliki w języku C++

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

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

Pliki wykład. Dorota Pylak

1. Wprowadzenie do C/C++

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

Funkcje zawarte w bibliotece < io.h >

Wprowadzenie do programowania i programowanie obiektowe

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

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

Funkcje zawarte w bibliotece < io.h >

Pliki wykład. Dorota Pylak

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

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

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

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

Listy i operacje pytania

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

Biblioteka standardowa - operacje wejścia/wyjścia

Język C++ wykład VIII

Programowanie Obiektowe i C++

fstream C/C++ #include <fstream> Stream strumień plików std::ifstream C/C++ uchwytem do pliku uchwyt do pliku plik std::ifstream

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

Pliki wykład 2. Dorota Pylak

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

Wykład 4. Tablice. Pliki

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

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

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

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

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

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Podstawy programowania w języku C++

Programowanie w językach wysokiego poziomu

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

Pliki. Informacje ogólne. Obsługa plików w języku C

Zaawansowane programowanie w języku C++ Biblioteka standardowa

Pliki wykład 2. Dorota Pylak

Języki programowania. Karolina Mikulska-Rumińska Pokój 573, tel Konsultacje wtorek 9-10.

Pliki. Operacje na plikach w Pascalu

Programowanie obiektowe

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

Programowanie wspóªbie»ne

Zasady programowania Dokumentacja

Wstęp do programowania obiektowego

Podstawy i języki programowania

Pliki. Informacje ogólne. Obsługa plików w języku C

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

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

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

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

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

Wykład PASCAL - Pliki tekstowe

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

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

Programowanie Proceduralne

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

J zyk C dla sterowników programowalnych GeFanuc

Wstęp do Programowania 2

po ostatnim dopisaniu na standardowe wyjście (cout) powinien zostać wyprowadzony komunikat "Skonczylem";

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

Proces tworzenia programu:

Wprowadzenie do języka Java

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

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

Programowanie obiektowe w C++ Wykªad 4

Typy danych i formatowanie

W przypadku STL w specyfikacji nazwy pliku nagłówkowego brak rozszerzenia tj. <string> <string.h> zamiast

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE

Języki programowania

Laboratorium z systemów operacyjnych. System plików - funkcje systemowe. Anna Wojak

Logika dla matematyków i informatyków Wykªad 1

Języki programowania imperatywnego

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

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

Subversion - jak dziaªa

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Podstawy JavaScript. Dawid Poªap. Dawid Poªap Technologia informacyjna Grudzie«, / 13

1 Klasa File. 2 Writer. Programowanie w j zyku Java - Adam Krechowicz. Klasa File zapewnia podstawowe operacje na plikach

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof]

Transkrypt:

Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski 1 Strumienie W j zyku C++ pliki obsªugiwane s za pomoc strumieni. Strumie«pozwala na sekwencyjny dost p do pliku. Elementy, które jako pierwsze zostaj zapisane do strumienia jako pierwsze b d z niego odczytane. Strumienie wykorzystywane s tak»e do obsªugi standardowego wej±cia/wyj±cia (std::cin, std::cout, std::cerr, std::clog). Zapisanie danych do strumienia odbywa si za pomoc operatora <<, natomiast odczytanie danych ze strumienia za pomoc operatora >>. Operatory te zwracaj strumie«na rzecz którego zostaªy wywoªane dlatego mo»liwe jest np jednoczesne wysªanie kilku elementów do strumienia. Przykªad: int i = 5; std::cout << "Tekst" << i << "Inny tekst" << std:: end; 2 Pliki Strumienie do obsªugi plików zdeniowane s w pliku nagªówkowym fstream. W pliku tym zdeniowane s nast puj ce strumienie: std::ifstream strumie«do odczytu pliku std::ofstream strumie«do zapisu pliku fstream strumie«do odczytu i zapisu pliku 2.1 Zapis do pliku tekstowego std:: ofstream file; file.open("plik.txt"); file << "Hello World"; file.close(); 1

2.2 Odczyt pliku tekstowego std:: string linia; std:: ifstream plik; plik.open("plik.txt"); if (plik.is_open()){ while(getline(plik, linia)) std:: cout << linia << std::endl; else std::cout << "Nie udalo sie otworzyc pliku" << std::endl; 2.3 Zapis pliku binarnego int i = 3; oat f = 4.6f; long l = 3000000l; std:: ofstream plik; plik.open("plik.abc", std::ios::binary); plik.write(reinterpret_cast<char >(&i), sizeof(i)); plik.write(reinterpret_cast<char >(&f), sizeof(f)); plik.write(reinterpret_cast<char >(&l), sizeof(l)); 2.4 Odczyt pliku binarnego int i; oat f; long l; std:: ifstream plik; 2

plik.open("plik.abc", std::ios::binary); plik.read(reinterpret_cast<char >(&i), sizeof(i)); plik.read(reinterpret_cast<char >(&f), sizeof(f)); plik.read(reinterpret_cast<char >(&l), sizeof(l)); std:: cout << i << "," << f << "," << l << std::endl; Pierwsze parametry metod read i write to wska¹niki na adres w pami ci gdzie znajduj si dane do zapisania. Dlatego aby przesªa podstawowe typy musz one wcze±niej zosta rzutowane na typ char*. 2.5 Metody strumieni open() otwiera plik do zapisu lub odczytu. mo»na poda opcjonalne parametry: Jako drugi parametr std::ios::binary otwieramy plik binarny, je±li brak parametru to plik tekstowy std::ios::in otwieramy plik do odczytu, je±li otwieramy strumie«ifstream to parametr ten mo»na pomin std::ios::out otwieramy plik do zapisu, je±li otwieramy strumie«ofstream to parametr ten mo»na pomin std::ios::ate otwieramy plik i przesuwamy si na koniec pliku w celu dopisania zawarto±ci (mo»na zmieni pozycj wska¹nika) std::ios::app otwieramy plik tylko i wyª cznie do dopisywania zawarto±ci (nie mo»na zmieni pozycji wska¹nika w celu nadpisania) std::ios::trunc otwieramy plik wymazuj c jego poprzedni zawarto± close() zamyka plik is_open() sprawdza czy plik zostaª prawidªowo otworzony read() odczytuje dane z pliku write() zapisuje dane do pliku getline() pobiera caª lini z pliku tellg(), tellp() zwraca aktualn pozycj w pliku odpowiednio do pobierania i zapisywania 3

seekg(), seekp() ustawia aktualn pozycj w pliku odpowiednio do pobierania i zapisywania eof() sprawdza czy osi gni to koniec pliku fail() sprawdza czy operacja zako«czyªa si niepowodzeniem bad() sprawdza czy operacja zako«czyªa si problemem uniemo»liwiaj cym dalsze operacje na strumieniu good() sprawdza czy strumie«jest prawidªowy 3 Strumienie ªa«cuchów znaków W programach pisanych w C++ przydatny mo»e by tak»e strumienie operuj ce na ªa«cuchach znaków zdeniowane w <sstream>: istringstream wej±ciowy strumie«ªa«cucha znaków ostringstream wyj±ciowy strumie«ªa«cucha znaków stringstream wej±ciowo/wyj±ciowy strumie«ªa«cucha znaków Strumie«ostringstream mo»e by przydatny np. do zamiany okre±lonych typów danych na posta ªa«cucha znaków: std:: ostringstream oss; oss << "Hello" << i << ";" << l; std::cout << oss.str() << std::endl Strumie«istringstream mo»e by przydatny np. do pobrania okre±lonych warto±ci z ªa«cucha znaków: std:: string str = "1 2 3"; std:: istringstream iss(str); int a1, a2, a3; iss >> a1 >> a2 >> a3; std::cout << a1 << "," << a2 << "," << a3 << std::endl; 4 Zadania do wykonania 1. Zapisa do pliku tekstowego linie pobrane od u»ytkownika do czasu a» wpisze okre±lony ci g znaków 2. Odczyta caªy plik tekstowy linia po linii 4

3. Zapisa 10 losowych liczb do pliku binarnego 4. Odczyta caªy plik binarny 5. Stworzy histogram pliku binarnego 6. Wyznaczy ±redni wszystkich liczb zapisanych w pliku 7. Stworzy klas reprezentuj c Osob 8. Zapisa osoby do pliku 9. Odczyta osoby z pliku 10. Stworzy ªa«cuch znaków na podstawie zawarto±ci tablicy liczb 11. Odczyta z ªa«cucha znaków wszystkie liczby i zapisa je do kolekcji Vector 5