Funkcje zawarte w bibliotece < io.h >

Podobne dokumenty
Funkcje zawarte w bibliotece < io.h >

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

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

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

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

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

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

Biblioteka standardowa - operacje wejścia/wyjścia

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

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

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

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. Informacje ogólne. Obsługa plików w języku C

Programowanie w językach wysokiego poziomu

7 Przygotował: mgr inż. Maciej Lasota

Podstawy programowania w języku C++

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

Programowanie Procedurale. Pliki w języku C++

Strumienie i pliki. Programowanie Proceduralne 1

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

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

Programowanie Proceduralne

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

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

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

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

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

Podstawy programowania w języku C++

Podstawy programowania w języku C++

Podstawy programowania w języku C++

wer. 7 z drobnymi modyfikacjami Wojciech Myszka :48:

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

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

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

Języki i metody programowania I

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

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

PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY

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

Programowanie w językach

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

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

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

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

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

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

Ghost in the machine

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

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

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

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

#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 ); }

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

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

Operacje powiązane z systemem:

Argumenty wywołania programu, operacje na plikach

dr inż. Jarosław Forenc

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

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

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

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

Struktury. Przykład W8_1

#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 ); }

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

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Łącza nienazwane(potoki)

Pliki. Operacje na plikach w Pascalu

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

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

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

Ćwiczenie 7. Strumień trójelementowy. A g a EOF... EOF... Wprowadzenie do programowania w języku C. Wskaźnik bieżącej pozycji. bieżącej pozycji.

Inne darmowe! kompilatory języka C działające m.in. po systemem WINDOWS:

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 7- sem.iii. M. Czyżak

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

Tablice, funkcje - wprowadzenie

1 Przetwarzanie plików

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

Bardzo szybkie podsumowanie: wykład 4

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

Podstawy programowania 1

DYNAMICZNE PRZYDZIELANIE PAMIECI

C Operacje na plikach

część 6 biblioteka standardowa wejścia - wyjścia 1. sformatowane wejście - wyjście 2. rekordowe (binarne) wejście - wyjście

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 9 - sem.iii. Dr inż. M. Czyżak

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

Spis treści JĘZYK C - PLIKI BINARNE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF30

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

Programowanie i struktury danych

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

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

Podstawy Programowania. Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki

tablica: dane_liczbowe

OPERACJE NA PLIKACH. Podstawowe pojęcia:

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

Podstawy programowania w języku C++

Transkrypt:

PLIKOWE OPERACJE WEJŚCIA - WYJŚCIA Język C/C++ nie ma wbudowanych żadnych instrukcji umożliwiających wykonywanie operacji wejścia-wyjścia! Służą do tego funkcje biblioteczne. Funkcje zawarte w bibliotece < io.h > Dostęp do pliku za pomocą uchwytu (ang. Handle) - operacje niskiego poziomu 1. Funkcje otwierania (zwraca uchwyt pliku) oraz zamknięcia pliku int open ( const char nazwa_pliku, int tryb_dostepu ) int close ( int handle ) 2. Funkcje zapisu i odczytu z pliku int write ( int handle, void adres_bufora, unsigned ilosc_bajtow ) int read ( int handle, void adres_bufora, unsigned ilosc_bajtow ); 3. Funkcje pomocnicze int eof ( int handle ) // zwraca 1 gdy END OF FiILE long tell ( int handle ) long filelength ( int handle ) // zwraca pozycję wskaźnika pliku // zwraca długosć pliku w bajtach long lseek ( int handle, long przesuniecie, int względem_czego ) // 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 int plik; char tekst[ ] = To jest tekst zapisywany i odczytywany z pliku ; char znak; plik = open( test.dat, O_CREAT O_RDWR ); write( plik, tekst, strlen( tekst ) ); // zapis zawartosci tekstu do pliku lseek( plik, 0L, SEEK_SET ); // przesuniecie wskaźnika na poczatek do // odczyt po jednym znaku aż do napotkania eof read( plik, &znak, 1); printf( %c, znak ); // wydruk odczytanego znaku na ekranie while (!eof( plik ) ); close( plik ); M. Piasecki: PODSTAWY PROGRAMOWANIA 1 (W10) Plikowe operacje wejścia/wyjscia

Funkcje zawarte w bibliotece < stdio.h > Operacje we/wy realizowane za pomocą strumieni (ang. Stream) Strumienie reprezentowane są przez zmienne typu FILE. Struktura taka tworzona jest automatycznie podczas otwierania strumienia (zawiera informacje o nazwie pliku, trybie otwarcia, itp.). Wszystkie dalsze operacje na strumieniu wymagają podania wskaźnika na tą strukturę. FILE plik_wej, wyniki ; // definicja zmiennych plikowych 0. Standardowe strumienie wejścia i wyjscia (otwierane automatycznie) stdin strumień wejściowy (konsola - klawiatura) strumień wyjściowy (konsola - monitor) stdout stderr stdprn strumień komunikatów błędów (konsola) strumień drukarki 1. Funkcje otwarcia (zwraca wskaźnik na FILE) oraz zamknięcia pliku FILE fopen ( char nazwa_pliku, char rodzaj_operacji ) FILE plik; rodzaj operacji: plik = fopen( a:\\wyniki.dat, w+b ); if( plik == NULL ) r tylko do odczytu w tylko do zapisu (utworzenie nowego) a dopisywanie na końcu + z mozliwością aktualizacji b otwarcie jako plik binarny t otwarcie jako plik tekstowy // utworzenie pliku binarnego z możliwoscia aktualizacji printf( Blad otwarcia pliku wyników ); return -1; // kontrola błędów we/wy int fclose ( FILE strumien ) int fcloseall (void ) // zamknięcie wskazanego strumienia // zamknięcie wszystkich strumieni M. Piasecki: PODSTAWY PROGRAMOWANIA 2 (W10) Plikowe operacje wejścia/wyjscia

2. Zapis danych do strumienia 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 sformatowanego wyjscia analogiczna do printf( ) int fwrite ( void adres_w_pamieci, size_t rozmiar_bloku, size_t ilosc_blokow, FILE strumien) // funkcja kopiująca (ilosc_blokow rozmiar_bloku) bajtów spod wskazanego obszaru pamięci do strumienia (pliku) struct T_student char nazwisko[31]; char imie[16]; int wiek; ; void main( void ) FILE *strumien; T_student baza_danych[10]; if ( (strumien = fopen( test.bin, wb ) )!= NULL ) // zapis zawartości calej bazy ( tablicy struktur) do pliku binarnego fwrite( baza_danych, sizeof(t_student), 10, strumien); if ( (strumien = fopen( test.txt, wt ) )!= NULL ) // zapis zawartości calej bazy ( tablicy struktur) do pliku tekstowego for( int i = 0; i < 10; i++ ) fprintf ( strumien, %s %s %d \n, baza_danych[ i ].nazwisko, baza_danych[ i ].imie, baza_danych [ i ].wiek ); Jeżeli jako strumień wyjściowy podamy stdout (standardowy strumien wyjsciowy) to wtedy wydruk bedzie dokonywany na konsolę/ekran. np. fprintf( stdout, format,... ) printf( format,... ) M. Piasecki: PODSTAWY PROGRAMOWANIA 3 (W10) Plikowe operacje wejścia/wyjscia

3. Odczyt danych ze strumienia int fgetc ( FILE strumien ) // wczytanie pojedynczego znaku char fgets ( char tekst, int dlugosc, FILE strumien ) // wczytanie łańcucha składającego się z co najwyżej (dlugosc 1) znaków int fscanf ( FILE strumien, char format,... ) // funkcja sformatowanego wejścia analogiczna do scanf( ) int fread ( void adres_w_pamieci, size_t rozmiar_bloku, size_t ilosc_blokow, FILE strumien) // funkcja odczytująca (ilosc_blokow rozmiar_bloku) bajtów // ze strumienia do wskazanego obszaru pamięci struct T_student char nazwisko[31]; char imie[16]; int wiek; ; void main( void ) FILE *strumien; T_student baza_danych[10]; int ilosc; if ( (strumien = fopen( test.bin, rb ) )!= NULL ) // wczytanie zawartości bazy ( tablicy struktur) z pliku binarnego ilosc = 0; while( fread( &baza_danych[ilosc],sizeof(t_student),1,strumien)==1) ilosc++; if ( (strumien = fopen( test.txt, rt ) )!= NULL ) // wczytaniet zawartości bazy ( tablicy struktur) z pliku tekstowego for( int i = 0; (! feof(strumien) ) && (i < 10); i++ ) fscanf( strumien, %s %s %d, baza_danych [ i ].nazwisko, baza_danych [ i ].imie, &(baza_danych [ i ].wiek) ); M. Piasecki: PODSTAWY PROGRAMOWANIA 4 (W10) Plikowe operacje wejścia/wyjscia

4. Funkcje pomocnicze int feof ( FILE strumien ) // testowanie osiągnięcia końca pliku 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 long ftell ( FILE strumien ) // zwraca aktualną pozycję wskaźnika pliku int fflush ( FILE strumien ) // wymiata bufor wskazanego strumienia int flushall ( void ) // j.w.dla wszystkich buforowanych strumieni zadania zaliczeniowego // funkcja wyznaczająca pozycję maksymalnej liczby double w pliku binarnym long Maksimum( char nazwa_pliku ) FILE plik_danych; long pozycja=0, poz_max = 1; double liczba, maksimum; if ( (plik_danych = fopen( nazwa_pliku, rb ) )!= NULL ) while( fread( &liczba, sizeof(double), 1, plik_danych) == 1) if( pozycja == 0 ) maksimum = liczba; poz_max = 0; else if( liczba > maksimum ) maksimum = liczba; poz_max = pozycja; pozycja++; return poz_max ; M. Piasecki: PODSTAWY PROGRAMOWANIA 5 (W10) Plikowe operacje wejścia/wyjscia