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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 Rozdział 1 Obsługa plików W językach C pliki powiązane są ze strumieniami i pracuje się na nich podobnie jak na innych strumieniach. W języku C do operacji na plikach służą funkcje z biblioteki stdio.h, a wśród nich między innymi: fopen, fclose, fwrite, fread, fprintf, fscanf, feof i fseek. Aby zacząć operować na pliku należy go otworzyć, zaś po zakończeniu pracy należy plik zamknąć. Otwierając plik należy określić w jakim celu plik jest otwierany (do czytania, do pisania etc.) oraz czy plik ma być otwarty w trybie binarnym (czyli jako ciąg bajtów) czy tekstowym. 1.1 Wstęp Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę: 1. Otwarcie pliku w odpowiednim trybie (do zapisu, odczytu, zapisu i odczytu) - Operację otwarcia pliku wykonujemy za pomocą funkcji fopen. Funkcja ta posiada dwa parametry: pierwszy - nazwę pliku (właściwie: ścieżkę do pliku w postaci napisu np. "plik.txt", "/etc/fstab", "C: \\CONFIG.SYS",), drugi - tryb otwarcia pliku (również napis). Jeżeli operacja otwarcia powiodła się funkcja zwraca uchwyt do pliku wykorzystywany później w operacjach zapisu, odczytu i zamknięcia pliku. Jeżeli wystąpił błąd otwarcia pliku funkcja zwraca wartość N U LL. Tryb otwarcia pliku podajemy w postaci łańcucha tekstowego składającego się z odpowiednich składowych. Łańcuchy tekstowe identyfikujące tryb otwarcia przedstawione zostały poniżej: r otwarcie pliku w trybie tekstowym do odczytu rb otwarcie pliku w trybie binarnym do odczytu w otwarcie pliku w trybie tekstowym do zapisu wb otwarcie pliku w trybie binarnym do zapisu otwarcie pliku w trybie tekstowym, w celu a dopisania na koniec pliku otwarcie pliku w trybie binarnym, w celu ab dopisania na koniec pliku r+ otwarcie pliku w trybie tekstowym, zarówno do pisania i czytania rb+ otwarcie pliku w trybie binarnym, zarówno do pisania i czytania w+ otwarcie pliku w trybie tekstowym, zarówno do pisania i czytania wb+ otwarcie pliku w trybie binarnym, zarówno do pisania i czytania a+ otwarcie pliku w trybie tekstowym, zarówno do czytania i dopisywania na koniec pliku ab+ otwarcie pliku w trybie binarnym, zarówno do czytania i dopisywania na koniec pliku 1

2 Przykłady: (a) Poniższy fragment kodu otworzy w bieżącym katalogu plik tekstowy o nazwie raport.txt w trybie do zapisu: 1 FILE out ; out = fopen ( " r a p o r t. t x t ", "w" ) ; (b) Poniższy fragment kodu otworzy plik binarny (ciąg bajtów) o nazwie plik.bin w miejsu /home/student/desktop/plik.bin do zapisu i odczytu istniejącego pliku - jeżeli plik nie istnieje funkcja zwróci NULL: 1 FILE out ; out = fopen ( "/home/ student / Desktop / p l i k. bin ", " rb+" ) ; Tryb binarny otwarcia pliku (do zapisu i/lub odczytu) oznacza, że po otworzeniu takiego pliku w edytorze tekstu możemy zobaczyć tzw. krzaki. Ich zawartość to po prostu odbitka surowych danych zapisanych w pamięci programu, który je utworzył, bez jakiegokolwiek przetwarzania na formę odczytywalną przez człowieka. W pliku binarnym poszczególne bajty mają dowolne wartości, niekoniecznie są interpretowalne jako znaki alfanumeryczne. Taki plik jest zazwyczaj nieczytelny dla człowieka po otwarciu w podstawowym edytorze tekstu. Struktura informacji w plikach binarnych jest ściśle określona przez oprogramowanie, które zapisuje tego typu pliki (np. określoną strukturę ma plik MS Word, MS Excel itp.). Programista chcący odczytać i właściwie zinterpretować w swoim programie dane z pliku binarnego, powinien znać jego strukturę. Tryb tekstowy otwarcia pliku (do zapisu i/lub odczytu) poszczególne bajty w pliku można zinterpretować jako dane alfanumeryczne (znaki), zapisane przy pomocy określonego kodowania (np. ASCII). Jak pamiętamy, funkcja f open zwraca uchwyt do otwartego pliku, jeśli czynność się powiodła. W przeciwnym razie zwracana jest wartość N U LL. W celu zabezpieczenia programu przed niewłaściwym działaniem (odwołaniem do zerowego uchwytu) należy sprawdzić poprawność otwarcia pliku, np.: 1 FILE f ; f = fopen ( "program. c ", " r " ) ; 3 i f (! f ) { 4 perror ( " fopen " ) ; 5 exit ( 1 ) ; 6 } lub: 1 FILE f ; f = fopen ( "program. c ", " r " ) ; 3 i f ( f == NULL ) 5 fprintf ( stderr, " Nie mozna otworzyc p l i k u. \ n" ) ; 6 exit ( 1 ) ; } lub:

3 1 FILE f ; f = fopen ( "program. c ", " r " ) ; 3 i f ( f == NULL ) 5 perror ( " fopen " ) ; 6 exit ( 1 ) ; }. Wykonanie operacji zapisu lub odczytu - W zależności od rodzaju danych (tekstowe, binarne) używamy różnych funkcji: (a) Odczyt formatowany (plik tekstowy): 1 i n t fscanf ( in, "%s ", bufor ) ; in - uchwyt do pliku otwartego do odczytu (plik, z którego chcemy wczytać dane) %s - typ danych, jakie chcemy wczytać z pliku - tu napis (specyfikatory typów są tu identyczne jak w funkcji scanf) bufor - bufor (tablica) do której chcemy wpisać dane wczytane z pliku funkcja zwraca liczbę znaków, którą udało jej się przeczytać z pliku Używając funkcji fscanf możemy wczytywać dane do tablicy, liczby całkowitej, zmiennoprzecinkowej, czy znaku. Przykład: Załóżmy, że nasz plik wygląda jak poniżej: 1 We are in 01 Aby wczytać z niego poszczególne wartości możemy użyć funkcji fscanf, i wczytywać kolejno napis (We), napis (are), napis (in) oraz liczbę (01): #i n c l u d e <s t d l i b. h> 3 4 i n t main ( ) 5 { 6 char str1 [ 1 0 ], str [ 1 0 ], str3 [ 1 0 ] ; i n t year ; 8 FILE fp ; 10 fp = fopen ( " f i l e. t x t ", " r " ) ; 11 fscanf ( fp, "%s %s %s %d", str1, str, str3, &year ) ; 1 13 printf ( "Wczytany n a p i s 1 % s \ n", str1 ) ; 14 printf ( "Wczytany n a p i s % s \ n", str ) ; 15 printf ( "Wczytany n a p i s 3 % s \ n", str3 ) ; 16 printf ( "Wczytana l i c z b a %d \ n", year ) ; 1 18 fclose ( fp ) ; 1 3

4 0 r e t u r n 0 ; 1 } (b) Odczyt całej linii/łańcucha znakowego tekstu z pliku (odczy pliku liniami): 1 char fgets ( bufor, 100, in ) ; in - uchwyt do pliku otwartego do odczytu (plik, z którego chcemy wczytać dane) ile maksymalnie znaków możemy wczytać bufor - bufor (tablica) do której chcemy wpisać dane wczytane z pliku funkcja zwraca NULL, jeśli plik się skończy Przykład: Załóżmy, że nasz plik wygląda jak poniżej: 1 We are in 01 Aby wczytać z niego całą linię, możemy użyć funkcji fgets: #i n c l u d e <s t d l i b. h> 3 4 i n t main ( ) 5 { 6 char bufor [ ] ; FILE fp ; 8 fp = fopen ( " f i l e. t x t ", " r " ) ; 10 fgets ( bufor, 100, fp ) ; 11 1 printf ( " Odczytana l i n i a : % s \ n", bufor ) ; fclose ( fp ) ; r e t u r n 0 ; 1 } (c) Odczyt pojedynczego znaku tekstu z pliku (odczyt pliku znakami): 1 i n t fgetc ( in ) ; in - uchwyt do pliku otwartego do odczytu (plik, z którego chcemy wczytać dane) jeśli wykonanie zakończyło się poprawnie, to zwraca przeczytany znak po przekształceniu go na typ int jeśli wystąpił błąd lub został przeczytany znacznik końca pliku, to zwraca wartość EOF 4

5 Przykład: Załóżmy, że nasz plik wygląda jak poniżej: 1 We are in 01 Wczytajmy za pomocą funkcji fgetc 6 znaków z pliku do tablicy (zamiast tabicy, możemy np. użyć 6 zmiennych): #i n c l u d e <s t d l i b. h> 3 4 i n t main ( ) 5 { 6 char bufor [ 6 ] ; FILE fp ; 8 i n t i ; 10 fp = fopen ( " f i l e. t x t ", " r " ) ; 11 1 bufor [ 0 ] = fgetc ( fp ) ; 13 bufor [ 1 ] = fgetc ( fp ) ; 14 bufor [ ] = fgetc ( fp ) ; 15 bufor [ 3 ] = fgetc ( fp ) ; 16 bufor [ 4 ] = fgetc ( fp ) ; 1 bufor [ 5 ] = fgetc ( fp ) ; 18 1 printf ( " Odczytane znaki : % s \ n", bufor ) ; 0 printf ( " Odczytane znaki : \ n\n" ) ; 1 f o r ( i=0; i <6; i++) 3 printf ( "%c \n", bufor [ i ] ) ; 4 5 fclose ( fp ) ; 6 r e t u r n 0 ; 8 } (d) Zapis formatowany danych do pliku (plik tekstowy): 1 i n t fprintf ( out, "%d", n ) ; i n t fprintf ( out, "%d", 104) ; out - uchwyt do pliku otwartego do zapisu (plik, do którego chcemy wpisać dane) %d - typ danych, jakie chcemy zapisać do pliku - tu liczba całkowita (specyfikatory typów są tu identyczne jak w funkcji printf) n - liczba, którą chcemy wpisać do pliku 5

6 Przykład: Załóżmy, że do pliku chcemy wpisać liczbę całkowitą, zmiennoprzecinkową i tekst (napis) Programowanie w jezyku C. Zapiszemy te dane do pliku za pomocą funkcji fprintf : 5 FILE fp ; 6 i n t n = 0 1 ; 8 char text [ ] = " Programowanie w jezyku C. \ n" ; double pi = ; fp = fopen ( " m y f i l e. t x t ", "w" ) ; 1 13 fprintf ( fp, "%d\n", n ) ; 14 fprintf ( fp, "%l f \n", pi ) ; 15 fprintf ( fp, "%s \n", text ) ; 16 1 fclose ( fp ) ; 18 1 r e t u r n 0 ; 0 } (e) Zapis całej linii/łańcucha znakowego tekstu do pliku: 1 i n t fputs ( " This i s c programming. ", out ) ; i n t fputs ( bufor, out ) ; out - uchwyt do pliku otwartego do zapisu (plik, do którego chcemy wpisać dane) bufor - tablica znaków (napis), którą chcemy wpisać do pliku Przykład: Załóżmy, że do pliku chcemy wpisać tekst (napis): 1 This is c programming. This is a system programming language. 3 We are programming in C in 01 year. 4 Today is W celu zapisania całej linii do pliku, użyjemy funkcji fputs: 6

7 5 FILE fp ; 6 fp = fopen ( " f i l e. t x t ", "w+" ) ; 8 fputs ( " This i s c programming. \ n", fp ) ; 10 fputs ( " This i s a system programming language. \ n", fp ) ; 11 fputs ( "We are programming i n C i n 01 year. \ n", fp ) ; 1 fputs ( "Today i s ", fp ) ; fclose ( fp ) ; r e t u r n ( 0 ) ; 1 } (f) Zapis pojedynczego znaku tekstu do pliku (zapis pliku znakami): 1 i n t fputc ( ch, out ) ; i n t fputc ( ' \n ', out ) ; 3 i n t fputc ( ' a ', out ) ; out - uchwyt do pliku otwartego do zapisu (plik, do którego chcemy wpisać dane) ch - znak, który chcemy wpisać do pliku Przykład: Załóżmy, że chcemy wpisać do pliku cały alfabet (wielkie i małe litery), wpisując je do pliku po jednym znaku (użyjemy funkcji fputc): 5 FILE fp ; 6 i n t ch ; 8 fp = fopen ( " a l f a b e t. t x t ", "w+" ) ; 10 f o r ( ch = 65 ; ch <= 0 ; ch++ ) 11 fputc ( ch, fp ) ; 1 13 fputc ( ' \n ', fp ) ; f o r ( ch = ; ch <= 1 ; ch++ ) 16 fputc ( ch, fp ) ; 1 18 fclose ( fp ) ; 1 0 r e t u r n ( 0 ) ; 1 }

8 i n t main ( ) 3 { 4 FILE fp ; 5 i n t ch ; 6 fp = fopen ( " a l f a b e t. t x t ", "w+" ) ; 8 f o r ( ch = ' a ' ; ch <= ' z ' ; ch++ ) 10 fputc ( ch, fp ) ; 11 1 fputc ( ' \n ', fp ) ; f o r ( ch = 'A ' ; ch <= 'Z ' ; ch++ ) 15 fputc ( ch, fp ) ; 16 1 fclose ( fp ) ; 18 1 r e t u r n ( 0 ) ; 0 } (g) Odczyt binarny : 1 size_t fread ( void p, size_t s, size_t n, FILE stream ) ; 3 fread(&d, s i z e o f ( f l o a t ), 1, plik ) ; 4 fread ( tab, s i z e o f ( tab ), 1, plik ) ; &d1 - wskaźnik do zmiennej, którą chcemy odczytać z pliku sizeof(float) - rozmiar elementu do odczytu 1 - ilość elementów do odczytu plik - uchwyt do pliku otwartego do zapisu (plik, z którego chcemy odczytać dane binarne) Poniższy program odczytuje w trybie binarnym z pliku pojedynczą zmienną typu f loat oraz całą tablicę liczb zmiennoprzecinkowych: i n t main ( ) 3 { 4 f l o a t d, tab [ 5 ] ; 5 i n t i ; 6 FILE plik=fopen ( " data. bin ", " rb " ) ; 8 fread(&d, s i z e o f ( f l o a t ), 1, plik ) ; 10 fread ( tab, s i z e o f ( tab ), 1, plik ) ; 11 fclose ( plik ) ; 1 13 printf ( "d = %1. f \n", d ) ; f o r ( i=0;i <5;i++) 16 printf ( "%1. f ", tab [ i ] ) ; 1 18 r e t u r n 0 ; 1 } 8

9 (h) Zapis binarny : 1 size_t fwrite ( c o n s t void p, size_t s, size_t n, FILE stream ) ; 3 fwrite(&d1, s i z e o f ( f l o a t ), 1, plik ) ; 4 fwrite ( tab, s i z e o f ( f l o a t ), 5, plik ) ; &d1 - wskaźnik do zmiennej, którą chcemy zapisać do pliku sizeof(float) - rozmiar elementu do zapisu 1 - ilość elementów do zapisu plik - uchwyt do pliku otwartego do zapisu (plik, do którego chcemy wpisać dane binarne) Poniższy program zapisuje w trybie binarnym do pliku pojedynczą zmienną typu f loat oraz całą tablicę liczb zmiennoprzecinkowych: 5 f l o a t d1 = 1. 5 ; 6 f l o a t tab1 [ 5 ] = { 1. 0,. 0, 3. 0, 4. 0, 5. 0 } ; 8 FILE plik1=fopen ( " data. bin ", "wb" ) ; 10 fwrite(&d1, s i z e o f ( f l o a t ), 1, plik1 ) ; 11 fwrite ( tab1, s i z e o f ( f l o a t ), 5, plik1 ) ; 1 13 fclose ( plik1 ) ; r e t u r n 0 ; 16 } 3. Zamknięcie otwartego pliku - Plik zamykany jest funkcją f close. Funkcja f close zwraca zero jeśli zamknięcie pliku było pomyślne lub EOF w przypadku wystąpienia błędu: 1 fclose ( plik ) ; plik - uchwyt do otwartego pliku, który chcemy zamknąć

10 #i n c l u d e <s t d l i b. h> 5 FILE plik ; 6 plik = fopen ( " p l i k. t x t ", "a+" ) ; 8 i f ( plik == NULL ) { 10 printf ( " Blad o t w a r c i a p l i k u. \ n" ) ; 11 exit ( 1) ; 1 } / p r z e t w a r z a n i e p l i k u / fclose ( plik ) ; 1 18 r e t u r n 0 ; 1 } 4. Sprawdzenie, czy plik się skończył - Funkcja f eof testuje strumień ma ustawiony znacznik oznaczający koniec pliku, a nie czy nastąpił sam koniec pliku. Oznacza to że taki identyfikator jest ustawiany przez inną funkcję - funkcję która odczytuje dane. Można przyjąć, że ta funkcja czyta wszystkie dane, ale w momencie napotkania końca pliku ustawia znacznik EOF na strumieniu. Funkcja zwraca wartość niezerową jeżeli wcześniej napotkano koniec pliku tekstowego (tzn. jeżeli poprzedzająca operacja przeczytała znacznik końca pliku). 1. Czytanie pliku liniami 5 FILE fp ; 6 char buffer [ 5 5 ] ; 8 fp = fopen ( " a l f a b e t. t x t ", " r " ) ; 10 w h i l e ( fgets ( buffer, 55, fp )!= NULL ) 11 { 1 printf ( "%s \n", buffer ) ; 13 } fclose ( fp ) ; 16 1 r e t u r n ( 0 ) ; 18 } 10

11 1.3 Czytanie pliku znak po znaku 5 FILE fp ; 6 char c ; 8 fp = fopen ( " a l f a b e t. t x t ", " r " ) ; 10 w h i l e ( ( c = fgetc ( fp ) )!= EOF ) 11 { 1 printf ( "%c ", c ) ; 13 } fclose ( fp ) ; 16 1 r e t u r n ( 0 ) ; 18 } 1.4 Czytanie pliku za pomocą fscanf 5 FILE fp ; 6 char bufor [ ] ; 8 fp = fopen ( " U n t i t l e d 3. c ", " r " ) ; 10 w h i l e ( fscanf ( fp, "%s ", bufor ) ) 11 { 1 printf ( "%s \n", bufor ) ; i f ( feof ( fp ) ) 15 break ; 16 } 1 18 fclose ( fp ) ; 1 0 r e t u r n 0 ; 1 } 11

12 5 FILE fp ; 6 char bufor [ ] ; 8 fp = fopen ( " U n t i t l e d 3. c ", " r " ) ; 10 w h i l e (! feof ( fp ) ) 11 { 1 i f ( fscanf ( fp, "%s ", bufor )!= 1) 13 break ; printf ( "%s \n", bufor ) ; 16 } 1 18 fclose ( fp ) ; 1 0 r e t u r n 0 ; 1 } 1.5 Parametry / argumenty uruchomienia programu Do programu można przekazać dane nie tylko wczytując je z klawiatury, ale również za pomocą argumentów wywołania, podawanych podczas uruchomienia programu. Aby korzystanie z argumentów wywołania było możliwe, funkcja main programu powinna być zdefiniowana z nagłówkiem: 1 i n t main ( i n t argc, char argv ) { 3 / / 4 } lub, równoważnie: 1 i n t main ( i n t argc, char argv [ ] ) { 3 / / 4 } Pierwszy parametr, o zwyczajowej nazwie argc, jest liczbą argumentów podanych podczas wywołania programu. Pierwszym z tych argumentów, o numerze 0, jest zawsze nazwa wywoływanego programu. Tak więc argc jest zawsze co najmniej jeden. Zmienna argv wygląda trochę tajemniczo, ale tak naprawdę jest tablicą napisów zawierających kolejne argumenty wywołania: argv[0], argv[1],..., argv[argc 1], indeksowanie rozpoczyna się od zera, dlatego ostatnią wartścią indeksu jest argc 1 a nie argc. Skompiluj poniższy program (gcc plik.c -o plik), i wywołaj go z różnymi argumentami (lub bez):./plik./plik 1 3./plik aaa 1 sdx./plik programowanie w c./plik programowanie w c jest fajne 1

13 i n t main ( i n t argc, char argv ) 3 { 4 i n t i ; 5 6 printf ( "Nazwa programu : \ t%s \n", argv [ 0 ] ) ; printf ( " I l o s c argumentow programu : \ t%d\n", argc ) ; 8 10 f o r ( i = 1 ; i < argc ; i++) 11 printf ( "Argumentem nr %d j e s t %s \n", i, argv [ i ] ) ; 1 } Załóżmy, że chcemy do programu przekazać nazwę pliku (za pomocą argumentów wywołania programu). Następnie mamy plik o takiej nazwie otworzyć, przeczytać, i wypisać jego zawartość na ekranie: 3 i n t main ( i n t argc, char argv ) 5 FILE plik ; 6 char c ; 8 plik = fopen ( argv [ 1 ], " r " ) ; 10 i f ( plik == NULL ) 11 { 1 printf ( "Brak p l i k u! \ n" ) ; 13 r e t u r n 1; 14 } w h i l e ( ( c = fgetc ( plik ) )!= EOF ) 1 { 18 printf ( "%c ", c ) ; 1 } 0 1 fclose ( plik ) ; 3 r e t u r n 0 ; 4 } 13

14 1.6 Zadania do wykonania Zadanie 0 Napisz program, który zapyta użytkownika o nazwę pliku, a następnie otworzy ten plik do odczytu i wyświetli całą jego zawartość na ekranie. Zadanie 1 Napisz program, który policzy znaki w pliku (parametr programu). Zadanie Napisz program, który policzy linie w pliku (parametr programu). Zadanie 3 Napisz program, który policzy słowa w pliku (parametr programu). Zadanie 4 Napisz program, który wpisuje do pliku (parametr programu) 40 znaków w wierszach 5-cio znakowych. Zadanie 5 Napisz program, który wyświetla na ekranie liczbę wystąpień cyfr, małych i wielkich liter w podanym pliku (parametr programu). Zadanie 6 Napisz program, który zlicza zapisane linijki w istniejącym pliku (parametr programu) i zapisuje ich liczbę do innego pliku (drugi parametr programu). Zadanie Napisz program, który kopiuje plik tekstowy (pierwszy parametr programu) do drugiego pliku (drugi parametr programu). Zadanie 8 Napisz program, który kopiuje plik tekstowy (pierwszy parametr programu) do drugiego pliku (drugi parametr programu) w ten sposób, że każdy ciąg spacji redukuje do jednej i na końcu pliku podaje liczbę usuniętych spacji. Zadanie Napisz program, który wczytuje liczby z pliku i oblicza ich sumę oraz średnią. Zadanie 10 Napisz program, który kopiując podany plik (parametr programu) do innego pliku (drugi parametr programu), zamienia małą literę na wielką, a wielką na małą (inne znaki tj. cyfry, kropki itp. kopiowane są bez zmian). Zadanie 11 Napisz program, który sprawdzi i wypisze stosowną informację, czy podany plik (parametr programu) jest taki sam, jak inny plik (drugi parametr programu). Zadanie 1 Napisz funkcje, która dostaje jako argument ścieżkę dostepu do pliku tekstowego i wypisuje na standardowym wyjściu zawartość pliku z pominieciem białych znaków. Zadanie 13 Napisz funkcje, która dostaje jako argumenty ścieżkę dostepu do pliku tekstowego oraz znak c i zwraca jako wartość liczbe wystąpień znaku c w podanym w argumencie pliku. Zadanie 14 Napisz funkcje, która dostaje jako argumenty ścieżki dostepu do dwóch plików i dopisuje zawartość pierwszego pliku na koniec drugiego pliku. Zadanie 15 Napisz program, który zapisze do pliku (parametr programu) n linii wczytanych od użytkownika. Zadanie 16 Napisz program, który kopiując podany plik (parametr programu) do innego pliku (drugi parametr programu), łamie wiersze, które mają więcej niż 50 znaków (łącznie ze spacjami). Znaki powyżej 50-tego przenoszone są do nowej linii (dodatkowy wiersz). Wiersze krótsze kopiowane są bez zmian. 14

15 Zadanie 1 Napisz program, który otwiera dwa pliki o nazwach podanych w wierszu poleceń. Jeśli argumentów nie podano, wówczas nazwy plików mają być pobrane od użytkownika. Program powinien wyświetlać wiersze z obu plików naprzemienne, to znaczy: 1-szą linię z pierwszego pliku, 1-szą linię z drugiego pliku, -gą linię z pierwszego pliku, -gą linię z drugiego pliku, itd., aż do momentu, wyświetlenia ostatniego wiersza pliku zawierającego większą liczbę wierszy. Zadanie 18 Napisz program, który przyjmuje argumenty wiersza poleceń. Pierwszy z argumentów jest znakiem, drugi nazwą pliku. Program powinien wyświetlić na ekranie tylko te wiersze pliku wejściowego, które zawierają dany znak. Zakładamy, że każdy wiersz w pliku kończy się znakiem przejścia do nowej linii. Przyjmujemy, że żaden wiersz nie przekracza długości 56 znaków. Zadanie 1 W pliku dane.txt znajdują się w kolejnych wierszach losowe liczby. Do pliku a.txt wpisz ilość liczb parzystych znajdujących się w pliku dane.txt w następującej postaci: Liczb parzystych jest [ilość liczb]. Do pliku b.txt skopiuj wszystkie liczby z pliku dane.txt, w których cyfra dziesiątek jest równa lub 0. Do pliku c.txt skopiuj wszystkie liczby, które są kwadratami liczb całkowitych, np. taką liczbą jest liczba 5, ponieważ 55 = 15. Zadanie 0 Napisz funkcję, która jako parametry pobiera nazwę pliku do odczytu, nazwę pliku do zapisu oraz napisy, n1 oraz n (tablice znaków). Zadaniem funkcji jest przepisanie pliku wejściowego do wyjściowego w taki sposób, że każde wystąpienie napisu n1 w pliku wejściowym ma zostać zamienione na napis n w pliku wyjściowym. Przykład: Wywołanie funkcji: zadanie0("we.txt", "wy.txt", "piwo", "programowanie"); - chcemy zamienić każde wystąpienie słowa piwo słowem programowanie: Plik we.txt: lubie piwo Plik wy.txt: lubie programowanie 15

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

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

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

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych. Może posiadać określone atrybuty, a odwołanie do niego odbywa się poprzez nazwę. Każdy plik ma skończoną

Bardziej szczegółowo

Programowanie w językach wysokiego poziomu

Programowanie w językach wysokiego poziomu Programowanie w językach wysokiego poziomu zajęcia nr 2 Elektronika i Telekomunikacja, semestr III rok akademicki 2014/2015 Plan dzisiejszych zajęć Pliki tekstowe 1. Operacje na plikach - wprowadzenie

Bardziej szczegółowo

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

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013 Laboratorium Podstaw Informatyki Strona 1 Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Obsługa plików Kraków 2013 Laboratorium Podstaw Informatyki Strona 2 Obsługa plików Zanim będziemy mogli

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h > 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

Bardziej szczegółowo

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h > 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

Bardziej szczegółowo

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

Biblioteka standardowa - operacje wejścia/wyjścia

Biblioteka standardowa - operacje wejścia/wyjścia Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline

Bardziej szczegółowo

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

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VI Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Operacje na plikach Operacje na plikach Aby móc korzystać z pliku należy go otworzyć w odpowiednim

Bardziej szczegółowo

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

۰ Elementem jednostkowym takiego pliku jest bajt. ۰ Format pliku binarnego: [bajty pliku][eof] 1 Plik jest wydzielonym fragmentem pamięci (najczęściej dyskowej) posiadającym nazwę. Z punktu widzenia C plik jest ciągiem bajtów, z których każdy może zostać oddzielnie odczytany. Zgodnie ze standardem

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()

Bardziej szczegółowo

INFORMATYKA Studia Niestacjonarne Elektrotechnika

INFORMATYKA Studia Niestacjonarne Elektrotechnika INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl

Bardziej szczegółowo

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

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia 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

Bardziej szczegółowo

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

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 Plik to uporządkowany ciąg danych Dostęp do danych w pliku jest sekwencyjny, tj. istnieje pojęcie elementu aktualnego (tzw. wskaźnika pliku). Możliwy dostęp do danych w pliku jest tylko tam, gdzie wskazuje

Bardziej szczegółowo

Argumenty wywołania programu, operacje na plikach

Argumenty wywołania programu, operacje na plikach Temat zajęć: Argumenty wywołania programu, operacje na plikach Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (Zmienne statyczne) W języku C można decydować o sposobie przechowywania zmiennych. Decydują

Bardziej szczegółowo

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

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 Plik to uporządkowany ciąg danych Dostęp do danych w pliku jest sekwencyjny, tj. istnieje pojęcie elementu aktualnego (tzw. wskaźnika pliku). Możliwy dostęp do danych w pliku jest tylko tam, gdzie wskazuje

Bardziej szczegółowo

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

Wskaźniki do funkcji. Wykład 11. Podstawy programowania ( język C ) Wskaźniki do funkcji (1) Wskaźniki do funkcji (2) Podstawy programowania ( język C ) Wskaźniki do funkcji Wykład 11. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Wskaźniki do funkcji (1) W języku C funkcje nie są zmiennymi, ale

Bardziej szczegółowo

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

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński Języki programowania Część siódma Przetwarzanie plików amorficznych Konwencja języka C Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część jedenasta Przetwarzanie plików amorficznych Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

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

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists() 4. Pliki 4.1. Informacje ogólne o dostępie do plików w PHP Jak praktycznie każdy język programowania, PHP zapewnia dostęp do systemu plików znajdujących się na komputerze, na którym uruchamiany jest skrypt,

Bardziej szczegółowo

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

Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF. Pliki w C++ Plik jest reprezentowany przez strumień znaków (bajtów) o zmiennej długości. Koniec strumienia identyfikowany jest znacznikiem końca pliku EOF. Z każdym strumieniem związany jest wskaźnik bieżącej

Bardziej szczegółowo

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

Języki programowania. Karolina Mikulska-Rumińska   Pokój 573, tel Konsultacje wtorek 9-10. Języki programowania Karolina Mikulska-Rumińska E-mail: karolamik@fizyka.umk.pl Pokój 573, tel. 3346 Konsultacje wtorek 9-10. Pliki Dwa rodzaje plików: Tekstowe, Binarne Aby otworzyć plik należy najpierw

Bardziej szczegółowo

7 Przygotował: mgr inż. Maciej Lasota

7 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 7 1/5 Język C Instrukcja laboratoryjna Temat: Operacje na plikach. 7 Przygotował: mgr inż. Maciej Lasota 1) Pliki. Plik (ang. file), jest to nazwany ciąg danych (inaczej zbiór danych),

Bardziej szczegółowo

Programowanie Procedurale. Pliki w języku C++

Programowanie Procedurale. Pliki w języku C++ Programowanie Procedurale. Pliki w języku C++ Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Bożena Woźna-Szcześniak (AJD) Programowanie Procedurale. Pliki w języku C++

Bardziej szczegółowo

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

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych

Bardziej szczegółowo

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

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

Bardziej szczegółowo

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

Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście. Formatowane (tekstowe) wejście/wyjście. Binarne wejście/wyjście. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2018-03-27 09:06:38 +0200 Część I Formatowane (tekstowe) wejście/wyjście Otwarcie pliku

Bardziej szczegółowo

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

MATERIAŁY POMOCNICZE PODSTAWY PROGRAMOWANIA Na podstawie: Programowanie w C - Stworzone na Wikibooks, bibliotece wolny podręczników MATERIAŁY POMOCNICZE PODSTAWY PROGRAMOWANIA Na podstawie: Programowanie w C - Stworzone na Wikibooks, bibliotece wolny podręczników Funkcja getchar() Jest to bardzo prosta funkcja, wczytująca 1 znak z

Bardziej szczegółowo

Strumienie i pliki. Programowanie Proceduralne 1

Strumienie i pliki. Programowanie Proceduralne 1 Strumienie i pliki. Programowanie Proceduralne 1 Ogólnie o plikach Plik - ciąg bajtów o skończonej długości Nawa pliku nie stanowi jego części Położenie pliku określone przez ścieżkę dostępu Pliki są opatrzone

Bardziej szczegółowo

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część jedenasta Reprezentacja i przetwarzanie plików Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

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

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 Dr inż. Robert Wójcik Zakład Podstaw Informatyki i Teleinformatyki Instytut Cybernetyki Technicznej, Politechnika Wrocławska Wykład 15 15. Obsługa plików 15.1. Pliki tekstowe i binarne 15.2. Standardowa

Bardziej szczegółowo

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 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne

Bardziej szczegółowo

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

PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki <stdio.h> PRZYKŁADY OPERACJI PLIKOWYCH z wykorzystaniem biblioteki Pliki TEKSTOWE zawierające ciągi liczb: TXT- 1: Kalkulator sumowanie dwóch liczb zapisanych w pliku tekstowym ( fopen, fscanf, fprintf,

Bardziej szczegółowo

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

Ćwiczenie nr 8. Temat: Operacje na plikach - zapis i odczyt danych. Ćwiczenie nr 8 Temat: Operacje na plikach - zapis i odczyt danych. Zagadnienia: Zasady pracy na plikach dyskowych. otwarcie pliku do odczytu i zapisu (tryb otwarcia), wykonanie operacji odczytu i zapisu,

Bardziej szczegółowo

Programowanie w językach

Programowanie w językach Programowanie w językach wysokiego poziomu Obsługa plików za pomocą strumieni Elektronika i Telekomunikacja, semestr III rok akademicki 2013/2014 dr inż. Paweł Myszkowski Plan zajęć a) otwieranie i zamykanie

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

Bardziej szczegółowo

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

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury

Bardziej szczegółowo

Ghost in the machine

Ghost in the machine Operacje na pami eci i odrobina I/O Zak lad Chemii Teoretycznej UJ 8 stycznia 2007 Funkcje operujace Wstep do operacji I/O na plikach 1 Operacje na pami eci 2 Funkcje operujace 3 Wst Funkcje operujace

Bardziej szczegółowo

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

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,

Bardziej szczegółowo

PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY

PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY Łańcuch tekstowy w języku c jest pamiętany jako jednowymiarowa tablica znaków zakończona bajtem 0. char * tekst = dzień dobry wszystkim ; char tekst[22]= dzień dobry

Bardziej szczegółowo

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

Stałe i zmienne znakowe. Stała znakowa: znak Stałe i zmienne znakowe. Stała znakowa: znak Na przykład: a, 1, 0 c Każdy znak jest reprezentowany w pamięci przez swój kod. Kody alfanumerycznych znaków ASCII to liczby z przedziału [32, 127]. Liczby

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część jedenasta Reprezentacja i przetwarzanie plików Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze

Bardziej szczegółowo

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

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego 1 /24 Pisanie pojedynczych znaków z klawiatury do pliku #include void main(void) { FILE *fptr; // wkaznik do pliku, tzw. uchwyt

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

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

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak: Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Pliki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Operacje plikowe Plik - dokument lub inny zbiór danych zapisany na dysku, oznaczony unikatowa

Bardziej szczegółowo

Wykład PASCAL - Pliki tekstowe

Wykład PASCAL - Pliki tekstowe Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,

Bardziej szczegółowo

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

Operacje na plikach (niskiego poziomu) < IO.H > OPERACJE WEJŚCIA WYJŚCIA (część b) Operacje wejścia / wyjścia odczyt i zapis danych do róŝnych zewnętrznych urządzeń lub nośników pamięciowych komputera: np. klawiatury, ekranu monitora, dyskietki, czytnika

Bardziej szczegółowo

Pliki wykład 2. Dorota Pylak

Pliki wykład 2. Dorota Pylak Pliki wykład 2 Dorota Pylak Struktura programu działającego na plikach 1) Dyrektywa preprocesora #include //zapewnia dostęp do strumieni ifstream i ofstream 2) deklaracja zmiennej (strumienia)

Bardziej szczegółowo

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

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku. Program 7 Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku. #include #include using namespace std; int main()

Bardziej szczegółowo

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 6: Ciągi znaków. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 6: Ciągi znaków mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 17 listopada 2016 1. Wprowadzenie Instrukcja poświęcona jest zmiennym, które służą do przechowywania

Bardziej szczegółowo

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

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz

Bardziej szczegółowo

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

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int

Bardziej szczegółowo

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania: Zadania-7 1. Opracować program prowadzący spis pracowników firmy (max.. 50 pracowników). Każdy pracownik opisany jest za pomocą struktury zawierającej nazwisko i pensję. Program realizuje następujące polecenia:

Bardziej szczegółowo

Tablice, funkcje - wprowadzenie

Tablice, funkcje - wprowadzenie Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie trzecie (jedne zajęcia) Temat: Potoki i łącza nazwane w Linuksie. Opracowanie: dr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja

Bardziej szczegółowo

Kier. MTR Programowanie w MATLABie Laboratorium

Kier. MTR Programowanie w MATLABie Laboratorium Kier. MTR Programowanie w MATLABie Laboratorium Ćw. 7 Import i eksport danych. Współpraca z plikami zewnętrznymi 1. Wprowadzenie Eksport i import danych w MATLABie Na zakładce menu HOME w sekcji VARIABLE

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje

Bardziej szczegółowo

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje

Bardziej szczegółowo

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

Spis treści PLIKI BINARNE W JĘZYKU C. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF23 Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)

Bardziej szczegółowo

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

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 ISO/ANSI C Dostęp do plików w trybie tekstowym znak po znaku Czytanie z pliku int fgetc( FILE *stream ); char buffer[81]; int i, ch; if((stream = fopen("test.txt","r")) == NULL ) exit( 0 ); ch

Bardziej szczegółowo

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

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików 1 Pierwsze kroki w C++ cz.3 2 Obsługa plików Do pracy z plikami zewnętrznymi niezbędna będzie biblioteka fstream. Udostępnia ona programiście narzędzia do zapisu i odczytu plików. 2.1 Typ zmiennej fstream.

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

Strumienie, pliki. Sortowanie. Wyjątki.

Strumienie, pliki. Sortowanie. Wyjątki. Strumienie, pliki. Sortowanie. Wyjątki. Serializacja Zapisuje całą klasę Plik binarny Delimiter nieokreślony Nie da się podglądać Pliki tekstowe Zapisuje wybrane informacje Plik tekstowy Delimiter ustawiamy

Bardziej szczegółowo

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 4. Podstawowe biblioteki. Pętle. Operatory inkrementacji, dekrementacji, przypisania. Instrukcje goto, continue, break. Operacje na plikach.

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

do instrukcja while (wyrażenie);

do instrukcja while (wyrażenie); Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie

Bardziej szczegółowo

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Pliki wykład 2. Dorota Pylak

Pliki wykład 2. Dorota Pylak Pliki wykład 2 Dorota Pylak Struktura programu działającego na plikach 1) Dyrektywa preprocesora #include //zapewnia dostęp do strumieni ifstream i ofstream 2) deklaracja zmiennej (strumienia)

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część trzynasta Tablice struktur, pliki struktur Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści

Bardziej szczegółowo

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

I znowu można jak w C, za pomocą starych struktur i metod: Obsługa plików I znowu można jak w C, za pomocą starych struktur i metod: Odczyt (ifstream) Zapis (ofstream) Czego tu wszędzie brakuje? plik.close(); Wynik Plik testowy.txt app jak append http://www.cplusplus.com/reference/iostream/ifstream/

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

- wszystkie elementy - wszystkie elementy

- wszystkie elementy - wszystkie elementy Tablice: indeksy całkowite >=0 tworzenie: TABLICA[0]=45 TABLICA[1]=23 TABLICA[2]=78 lub TABLICA=(45 23 78) lub TABLICA=($@) odwołanie echo ${TABLICA[3] echo ${TABLICA[*] echo ${TABLICA[@] Długość zmiennej:

Bardziej szczegółowo

Pliki. Operacje na plikach w Pascalu

Pliki. Operacje na plikach w Pascalu Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) wiczenie trzecie Temat: Potoki i ł cza nazwane w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Komunikacja z wykorzystaniem

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako

Bardziej szczegółowo

Język C, tablice i funkcje (laboratorium, EE1-DI)

Język C, tablice i funkcje (laboratorium, EE1-DI) Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.

Bardziej szczegółowo

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

Operacje wejścia/wyjścia (odsłona druga) - pliki Operacje wejścia/wyjścia (odsłona druga) - pliki Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały

Bardziej szczegółowo

wer. 7 z drobnymi modyfikacjami Wojciech Myszka :48:

wer. 7 z drobnymi modyfikacjami Wojciech Myszka :48: Wejście/Wyjście wer. 7 z drobnymi modyfikacjami Wojciech Myszka 2014-05-12 16:48:03 +0200 Strumienie 1. W czasach przed-uniksowych program wykonujący operacje wejścia/wyjścia musiał podłączyć wszystkie

Bardziej szczegółowo

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Pzetestuj działanie pętli while i do...while na poniższym przykładzie: Pzetestuj działanie pętli while i do...while na poniższym przykładzie: Zadania pętla while i do...while: 1. Napisz program, który wczytuje od użytkownika liczbę całkowitą, dopóki podana liczba jest mniejsza

Bardziej szczegółowo

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania Rok akademicki 2013/2014, Pracownia nr 10 2/20 Informatyka 1 Tablica elementów ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu Politechnika Białostocka - Wydział Elektryczny Elektrotechnika,

Bardziej szczegółowo

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

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku Lista 7 Zad. 1 Pierwsza wersja programu 1. Przygotuj plik do w: plik tekstowy z pojedynczą liczbą. Umieść go w tym samym folderze, co projekt (*.cpp). 2. Nazwa pliku name nazwa zmiennej może być dowolna

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

lekcja 8a Gry komputerowe MasterMind lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych

Bardziej szczegółowo

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

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24 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

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

x szereg(x)

x szereg(x) Wstęp do Programowania, laboratorium 09 Zadanie 1. Zrobić program liczący wartość funkcji sin(x) przy pomocy rozwinięcia w szereg. Zakres wartości x (od, do) oraz liczba przedziałów podawane będą jako

Bardziej szczegółowo

Inicjacja tablicy jednowymiarowej

Inicjacja tablicy jednowymiarowej TABLICE C++ Inicjacja tablicy jednowymiarowej typ_komórek_tablicy nazwa_tablicy [ ilość elementów tablicy ] ; np.: int tablica[1000]; czyli tablica, która może przechowywać tysiąc elementów typu całkowitego,

Bardziej szczegółowo

#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> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

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

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle! Funkcja wysoce niezależny blok definicji i instrukcji programu (podprogram) Każdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje

Bardziej szczegółowo