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

Podobne dokumenty
Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h >

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

Programowanie w językach

W języku C każdy plik fizyczny jest ciągiem bajtów, z których każdy może być niezależnie odczytany. Borland 01234

Wskaźniki do funkcji. Wykład 11. Podstawy programowania ( język C ) Wskaźniki do funkcji (1) Wskaźniki do funkcji (2)

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

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

Biblioteka standardowa - operacje wejścia/wyjścia

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

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

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

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

Programowanie w językach wysokiego poziomu

Programowanie Proceduralne

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

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Podstawy programowania w języku C++

Programowanie Procedurale. Pliki w języku C++

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

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

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

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

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

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.

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

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

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h>

7 Przygotował: mgr inż. Maciej Lasota

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF.

Temat: Operacje na plikach. Pliki tekstowe i binarne. Faza otwarcia, zapisu/odczytu i zamknicia pliku.

Strumienie i pliki. Programowanie Proceduralne 1

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

MATERIAŁY POMOCNICZE PODSTAWY PROGRAMOWANIA Na podstawie: Programowanie w C - Stworzone na Wikibooks, bibliotece wolny podręczników

wer. 7 z drobnymi modyfikacjami Wojciech Myszka :48:

Podstawy programowania w języku C++

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

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

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

Wejście wyjście strumieniowe

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

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

Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście.

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

METODY I JĘZYKI PROGRAMOWANIA. Programowanie w języku C notatki z wykładów. Operacje WE/WY. Operacje na plikach (niskiego poziomu) < IO.

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

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

Pliki wykład 2. Dorota Pylak

Podstawy programowania w języku C++

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

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

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Język C++ wykład VIII

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

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

Pliki wykład 2. Dorota Pylak

Języki i metody programowania I

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

PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY

Podstawy programowania w języku C++

Programowanie i struktury danych

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

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

Ćwiczenia podstawowe, zestaw 5, część 1

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

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

Ghost in the machine

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

Wprowadzenie do programowania i programowanie obiektowe

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

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Ćwiczenie nr 8. Temat: Operacje na plikach - zapis i odczyt danych.

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych

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

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Struktury. Przykład W8_1

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

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

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

Tablice, funkcje - wprowadzenie

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

Pliki wykład. Dorota Pylak

Operacje powiązane z systemem:

Argumenty wywołania programu, operacje na plikach

wykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,

Łącza nienazwane(potoki)

dr inż. Jarosław Forenc

Języki programowania. Tablice struktur, pliki struktur. Część ósma. Autorzy Tomasz Xięski Roman Simiński

Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23

Pliki. Operacje na plikach w Pascalu

Politechnika Białostocka, Wydział Elektryczny, Katedra Elektrotechniki Teoretycznej i Metrologii ul. Wiejska 45D, Białystok

Transkrypt:

Materiały Operacje na plikach Informatyka Operacje wejścia-wyjścia w C/C++: Podejście proceduralne Podejście obiektowe Standardowe strumienie wejścia i wyjścia stdin - strumień wejściowy (klawiatura) cin - standardowy strumień wejściowy (klawiatura), stdout - strumień wyjściowy (ekran) cout - standardowy strumień wyjściowy (ekran), stderr - strumień komunikatów błędów (ekran) cerr - strumień komunikatów błędów (zazwyczaj ekran) Operacje plikowe (realizowane są za pomocą strumieni) Strumienie reprezentowane są poprzez zmienne typu FILE (taka W języku C++ operacje we/wy można realizować obiektowo. struktura tworzona jest automatycznie podczas otwierania strumienia i Podejście obiektowe zakłada, że różne urządzenia są reprezentowane zawiera informacje o nazwie pliku, trybie otwarcia, itp.). Wszystkie w programie za pomocą różnych obiektów modelujących strumienie kolejne operacje na pliku wymagają podania wskaźnika na tą strukturę. danych, które wpływają lub wypływają z tych urządzeń. np. np. FILE *fp; //definicja zmiennej plikowej fstream plik; //definicja zmiennej plikowej Funkcje realizujące operacje na plikach

Funkcje zawarte w bibliotece <stdio.h> FILE * fopen ( char *nazwa_pliku, char *rodzaj_operacji ); Rodzaj operacji: r - tylko do odczytu, w - tylko do zapisu, a - dopisywanie na końcu, + - z możliwością aktualizacji, b - otwarcie jako plik binarny, t - otwarcie jako plik tekstowy. Funkcje zawarte w bibliotece <fstream.h> void open( char *nazwa_pliku, int tryb_otwarcia ) - otwarcie pliku, Lista dostępnych trybów otwarcia strumienia: ios::in - otwarcie strumienia do odczytu, ios::out - otwarcie strumienia do zapisu, ios::app - otwarcie strumienia w trybie dopisywania, ios::trunc - wyzerowanie rozmiaru pliku, jeżeli plik istnieje, ios::binary - otwarcie strumienia jako binarny, int fclose ( FILE *strumien ); - zamknięcie strumienia int fcloseall (void ); - zamknięcie wszystkich strumieni void close( void ) - zamknięcie pliku skojarzonego z danym strumieniem FILE *plik; // utworzenie pliku do odczytu plik = fopen( c:\\wyniki.txt, r ); if( plik == NULL ) // kontrola błędów printf( Blad otwarcia pliku ); return -1; int ios::bad( ) - zwraca wartość różną od zera, jeżeli pojawił się błąd, int ios::good( ) - zwraca wartość różną od zera, jeżeli nie wystąpił błąd, int feof ( FILE *strumien ); - testowanie osiągnięcia końca pliku int ios::eof( ); - zwraca wartość różną od zera, gdy koniec pliku, int ios::width(int); - szerokość pola wyjściowego (np.ilość cyfr) int ios::precision( int ) - steruje ilością cyfr po przecinku int fgetc ( FILE *strumien ); - wczytanie pojedynczego znaku get( char& znak); - wczytuje jeden znak ze strumienia,

char* fgets ( char *tekst, int dlugosc, FILE *strumien ); - wczytanie łańcucha składającego się z co najwyżej znaków int fscanf ( FILE *strumien, char *format,...); - analogiczna do scanf int fread ( void* adres, size_t rozm_bl, size_t il_blokow, FILE* strumien ); - funkcja odczytująca (ilosc_blokowrozmiar_bloku) bajtów getline(char* bufor, int max_dlug, char znak_konca); - wczytuje linię/łańcuch znaków, >> - operator odczytu danych ze strumienia tekstowego. read( char* bufor, int ilość_bajtów ); - wczytuje ciąg bajtów do bufora, int fputc ( int znak, FILE *strumien ); - wysłanie pojedynczego znaku int fputs ( char *tekst, FILE *strumien ); - wysłanie łańcucha znaków int fprintf ( FILE *strumien, char *format,... ); - funkcja analogiczna do printf int fwrite ( void* adres, size_t rozm_bl, size_t il_blokow, FILE* strumien ); - funkcja kopiująca (ilosc_blokowrozmiar_bloku) bajtów spod wskazanego obszaru pamięci do strumienia (pliku) put( char& znak); - wysyła jeden znak do strumienia, << - operator wysłania/zapisu danych do strumienia tekstowego. write(char* bufor, int ilość_bajtów); - wysyła ciąg bajtów z bufora do strumienia int fseek ( FILE *strumien, long przesuniecie, int wzgledem); - przesuwa wskaźnik pliku o zadaną ilość bajtów względem zadanego miejsca: SEEK_SET - względem początku pliku SEEK_CUR - względem aktualnej pozycji SEEK_END - względem końca pliku istream & seekg( streamoff offset, ios_base::seekdir kierunek); - ustawia wewnętrzny wskaźnik pliku dla funkcji odczytujących dane ostream & seekp( streamoff offset, ios_base::seekdir kierunek ); - ustawia wewnętrzny wskaźnik pliku dla funkcji zapisujących dane Stałe określające pozycję odniesienia (podczas przesuwania pozycji): ios::beg - względem początku pliku, ios::cur - względem pozycji aktualnej, ios::end - względem końca pliku,

long ftell ( FILE *strumien ); - zwraca aktualną pozycję wskaźnika pliku int fflush ( FILE *strumien ); - czyści bufor wskazanego strumienia int flushall ( void ); - czyści bufor dla wszystkich buforowanych strumieni # include <stdio.h> # include <ctype.h> streampos tellg(); - zwraca aktualną pozycję wewnętrznego wskaźnika pliku od której będzie następowało wczytywanie danych z pliku streampos tellp(); - zwraca aktualną pozycję wewnętrznego wskaźnika pliku od której będzie następowało zapisywanie danych do pliku. Przykład (kopiowanie pliku z jednoczesną zamianą liter na małe) # include <fstream.h> # include <ctype.h> int main() char c; FILE *fin, *fout; fin = fopen( data.txt, rt ); fout = fopen( results.txt, wt ); if( (fin!=null) && (fout!=null) ) while(!feof(fin) ) c = fgetc(fin); c = tolower(c); fputc(c, fout); fclose( fin ); fclose( fout ); return 0; using namespace std; int main() char c; fstream fin, fout; fin.open( data.txt, ios::in ); fout.open( results.txt, ios::out ); if( fin.good( ) && fout.good( ) ) while(! fin.eof( ) ) fin.get( c ); c =tolower( c ); fout.put( c ); fin.close( ); fout.close( ); return 0;