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.

Biblioteka standardowa - operacje wejścia/wyjścia

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

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

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

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

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Programowanie Proceduralne

Programowanie Procedurale. Pliki w języku C++

Strumienie i pliki. Programowanie Proceduralne 1

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

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. 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.

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.

Podstawy programowania w języku C++

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

Podstawy programowania w języku C++

Podstawy programowania w języku C++

wer. 7 z drobnymi modyfikacjami Wojciech Myszka :48:

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

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

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

Języki i metody programowania I

PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY

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

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

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

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

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

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

Programowanie w językach

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

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

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

Ghost in the machine

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

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

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

Struktury. Przykład W8_1

Łącza nienazwane(potoki)

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

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

Pliki. Operacje na plikach w Pascalu

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

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

Tablice, funkcje - wprowadzenie

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

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

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

Bardzo szybkie podsumowanie: wykład 4

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,

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

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

Ć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.

1 Przetwarzanie plików

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

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

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

C Operacje na plikach

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

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

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

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

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

ŁAŃCUCHY W JĘZYKU C/C++

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

Podstawy programowania 1

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

WYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5

1. Wprowadzanie danych z klawiatury funkcja scanf

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

Stałe i zmienne znakowe. Stała znakowa: znak

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

Wejście wyjście strumieniowe

OPERACJE NA PLIKACH. Podstawowe pojęcia:

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 ) // zwraca pozycję wskaźnika pliku long filelength ( int handle ) // 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: INFORMATYKA 1 1 (W9) 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 strumieniowych 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 ) rodzaj operacji: 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 FILE plik; plik = fopen( a:\\wyniki.dat, w+b ); if( plik == NULL ) // utworzenie pliku binarnego z możliwoscia aktualizacji printf( Blad otwarcia pliku wyników ); exit( 1 ); // kontrola błędów we/wy int fclose ( FILE strumien ) int fcloseall (void ) // zamknięcie wskazanego strumienia // zamknięcie wszystkich strumieni M. Piasecki: INFORMATYKA 1 2 (W9) 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 student char nazwisko[31]; char imie[16]; int wiek; ; void main( void ) FILE *strumien; struct student baza[10]; if ( (strumien = fopen( "test.bin", " wb " ) )!= NULL ) // zapis zawartości calej bazy ( tablicy struktur) do pliku binarnego fwrite( baza, sizeof(struct 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[ i ].nazwisko, baza[ i ].imie, baza[ i ].wiek ); Jeżeli jako strumień wyjsciowy podamy stdout (standardowy strumien wyjsciowy) to wtedy wydruk bedzie dokonywany na ekran. np. fprintf( stdout, format,... ) printf( format,... ) M. Piasecki: INFORMATYKA 1 3 (W9) 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 student char nazwisko[31]; char imie[16]; int wiek; ; void main( void ) FILE *strumien; struct student baza[10]; int ilosc, i; if ( (strumien = fopen( "test.bin", " rb " ) )!= NULL ) // wczytanie zawartości bazy ( tablicy struktur) z pliku binarnego ilosc = 0; while( fread( &baza[ilosc], sizeof(student), 1, strumien) == 1) ilosc++; if ( (strumien = fopen( "test.txt", " rt " ) )!= NULL ) // wczytaniet zawartości bazy ( tablicy struktur) z pliku tekstowego for( i = 0; (!feof(strumien) ) && (i < 10); i++ ) fscanf( strumien, %s %s %d, baza[ i ].nazwisko, baza[ i ].imie, &(baza[ i ].wiek) ); M. Piasecki: INFORMATYKA 1 4 (W9) 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++; fclose( plik_danych ); return( poz_max ); M. Piasecki: INFORMATYKA 1 5 (W9) Plikowe operacje wejścia/wyjscia