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

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

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

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

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

Biblioteka standardowa - operacje wejścia/wyjścia

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

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

Programowanie w językach wysokiego poziomu

Funkcje zawarte w bibliotece < io.h >

Funkcje zawarte w bibliotece < io.h >

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

7 Przygotował: mgr inż. Maciej Lasota

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

2 Przygotował: mgr inż. Maciej Lasota

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

1. Wprowadzanie danych z klawiatury funkcja scanf

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

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

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

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

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

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

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

Kier. MTR Programowanie w MATLABie Laboratorium

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

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

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 II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

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

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

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

Ghost in the machine

Podstawy programowania w języku C++

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

Argumenty wywołania programu, operacje na plikach

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

Języki i metody programowania. Omówienie języków C, C++ i Java

Struktury, unie, formatowanie, wskaźniki

Język C i C++. Podstawy. Zagadnienia do opanowania. Przykład 1. (modyfikuj kod, aby zrealizować punkty 5., 7.)

Języki i metodyka programowania. Wprowadzenie do języka C

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

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

Programowanie Procedurale. Pliki w języku C++

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

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

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

Zmienne, stałe i operatory

Pliki wykład 2. Dorota Pylak

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

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

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

PODSTAW PROGRAMOWANIA WYKŁAD 7 ŁAŃCUCHY

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

dr inż. Paweł Myszkowski Wykład nr 8 ( )

Podstawy Informatyki sem. I 2014/2015 studia zaoczne Elektronika i Telekomunikacja!

Tablice, funkcje - wprowadzenie

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

Strumienie i pliki. Programowanie Proceduralne 1

Zasady programowania Dokumentacja

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

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

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

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Proste typy zmiennych języka C++ *) Zapis 3.4 e-38 jest równoważny zapisowi 3,

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

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

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

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

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

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Wprowadzenie do języka Java

Wstęp do Programowania, laboratorium 02

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Języki i metody programowania I

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

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

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

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

wer. 7 z drobnymi modyfikacjami Wojciech Myszka :48:

Programowanie w językach

Programowanie w języku Java

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

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

Podstawy programowania w języku C++

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

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

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

Podstawy Programowania. Składnia wyrażeń i instrukcji, złożoności obliczeniowej, operacje wejścia i wyjścia, definicja

MATERIAŁY DO ZAJĘĆ II

Podstawy programowania w języku C++

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 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Podstawy i języki programowania

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Transkrypt:

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, Formatowanie danych wyjściowych Formatowane dane wejściowe Argumenty linii poleceń

Wskaźnik do pliku Dostęp do plików w programie uzyskuje się z wykorzystaniem wskaźnika do pliku. W bibliotece stdio zdefiniowano strukturę FILE służącą do przechowywania informacji o plikach. Przykładowa deklaracja FILE* fptr;

Otwieranie pliku Do otwierania plików służy funkcja fopen() z bibliteki stdio. Funkcja fopen() pobiera dwa argumenty: nazwę pliku, tryb dostępu do pliku. Funkcja fopen() zwraca wskaźnik na plik.

Otwieranie pliku przykład

Zamykanie pliku Do zamykania plików służy funkcja fclose() z bibliteki stdio. Funkcja fclose() pobiera jeden argument: wskaźnik na plik. Funkcja fclose() zwraca liczbę całkowitą.

Otwieranie pliku Tryb dostępu Tryb dostępu do pliku określany jest łańcuchem znakowym. Podstawowe tryby dostępu określają litery: odczyt "r", zapis "w", dołączanie "a", plik binarny "b". Litery można ze sobą łączyć.

Dostęp do pliku Błędy Jeżeli nie można otworzyć pliku funkcja fopen() zwraca wskaźnik zerowy NULL. Jeżeli operacja zamknięcia pliku się nie powiedzie funkcja fclose() zwraca EOF.

Dostęp do pliku Przykład otwarcie nieistniejącego pliku

Dostęp do pliku Przykład otwarcie istniejącego

Dostęp do pliku Przykład zapis do pliku

Dostęp do pliku Przykład zapis do pliku

Zapis danych do pliku Do zapisywania danych do pliku można wykorzystać funkcję fprintf(). Funkcja fprintf() działa analogicznie do funkcji printf(). Pierwszy argument jest wskaźnikiem do pliku, kolejnymi łańcuch kontrolny i dane do wyświetlenia. Przykładowo fprintf(fptr,"a = %lf\n",a);

Odczyt danych z pliku Do czytania danych z pliku można wykorzystać funkcję fscanf(). Funkcja fscanf() działa analogicznie do funkcji scanf(). Pierwszy argument jest wskaźnikiem do pliku, kolejnymi łańcuch kontrolny i referencje do zmiennych. Przykładowo fscanf(fptr,"a = %lf\n",&a);

Dostęp do pliku Przykład odczyt z pliku

Dostęp do pliku Przykład odczyt z pliku

Standardowe strumienie danych Biblioteka stdio zapewnia dostęp do trzech standardowych strumieni danych: stdin (standardowe wejście klawiatura), stdout (standardowe wyjście ekran), stderr (standardowy strumień błędów ekran).

Standardowe strumienie danych Przykład

Formatowanie danych wyjściowych int printf(char* format,...) Łańcuch kontrolny zawiera: zwykłe znaki, znaczniki konwersji: znacznik zaczyna się znakiem %, znacznik kończy się znakiem określającym typ danych.

Formatowanie danych wyjściowych Pomiędzy %, a znakiem określającym typ danych mogą znajdować się (kolejno): znak minus (wyrównanie do lewej), liczba określająca minimalną szerokość pola, kropka oddzielającą szerokość pola od precyzji, liczba określająca precyzję: największą dopuszczalną liczbę znaków w ciągu, liczbę cyfr po separatorze dziesiętnym dla liczb zmiennoprzecinkowych, minimalną liczbę cyfr dla liczb całkowitych, h lub l, jeżeli liczba całkowita ma zostać wypisana jako short lub long.

Formatowanie danych wyjściowych Szerokość lub precyzja mogą być określone znakiem *. Szerokość określa wtedy następny argument, który musi być liczbą int. Przykładowo: printf("%.*s", max, s);

Formatowanie danych wyjściowych znak typ wypisywany jako d, i int liczba dziesiętna o int liczba ósemkowa x, X int liczba szesnastkowa u int liczba dziesiętna bez znaku c int pojedynczy znak s char * znaki ciągu (w liczbie odpowiadającej precyzji lub poprzedzające \0) f double [-]m.dddddd e, E double [-]m.dddddde±xx lub [-]m.dddddde±xx g, G double jak %e lub %E, jeżeli wykładnik jest mniejszy niż -4 albo większy lub równy precyzji; w p.p. jako %f p void * wskaźnik % - wypisuje znak %

Formatowanie danych wyjściowych printf(format,"hello, world"); format wyjście :%s: :hello, world: :%10s: :hello, world: :%.10s: :hello, wor: :%-10s: :hello, world: :%.15s: :hello, world: :%-15s: :hello, world : :%15.10s: : hello, wor: :%-15.10s: :hello, wor :

Formatowanie danych wyjściowych Istnieje jeszcze jedna funkcja podobna do printf() i fprintf(): int sprintf(char *string, char *format,...) Wynik zapisywany w ciągu string (rozmiar string musi być wystarczający).

Formatowane dane wejściowe int scanf(char* format,...) odczytuje znaki ze standardowego wejścia, interpretuje je zgodnie ze specyfikacją zawartą w ciągu format, pozostałe argumenty muszą być referencjami do zmiennych.

Formatowane dane wejściowe int scanf(char* format,...) kończy odczytywanie po dojściu do końca ciągu formatowania lub w przypadku, gdy dane wejściowe nie odpowiadają specyfikacji zwraca liczbę elementów, które udało się przypisać osiągnięcie końca pliku sygnalizuje zwracając EOF

Formatowane dane wejściowe Istnieje jeszcze jedna funkcja podobna do scanf() i fscanf(): int sscanf(char* string, char* format,...) funkcja przeszukuje string zgodnie ze specyfikacją w format

Formatowane dane wejściowe Ciąg formatowania może zawierać: spacje i tabulatory (są pomijane), zwykłe znaki (z wyjątkiem %), które powinny być dopasowane do znaków drukowalnych w strumieniu danych wejściowych, znaczniki konwersji.

Formatowane dane wejściowe Znaczniki konwersji: znak %, opcjonalny znak * (wstrzymanie przypisania), opcjonalna liczba (określająca największą możliwą szerokość pola), opcjonalnej litery h, l lub L, która określa szerokość obiektu docelowego, znak określający typ danych.

Formatowane dane wejściowe znak typ argumentu dane wejściowe d int* liczba całkowita dziesiętna i int* liczba całkowita może być ósemkowa (znak 0 na początku) lub szesnastkowa (znaki 0x lub 0X na początku) o int* liczba całkowita ósemkowa (znak 0 opcjonalny) x, X int* liczba całkowita szesnastkowa (znaki 0x lub 0X opcjonalne) u unsigned int* liczba dziesiętna bez znaku mogą być poprzedzone literą h (short* zamiast int*) lub l (long* zamiast int*)

Formatowane dane wejściowe znak typ arg. dane wejściowe c char * znaki; dalsze znaki danych wejściowych (domyślnie 1) są umieszczane we wskazanym miejscu pamięci; pomijanie białych znaków wstrzymane; aby odczytać jeden znak drukowalny, używamy zapisu %1s s char * ciąg znaków; wskaźnik do tablicy znaków dostatecznie dużej, aby zapisać ciąg wraz z końcowym znakiem \0 e, f, g float * liczba zmiennoprzecinkowa z opcjonalnym znakiem, opcjonalną kropką dziesiętną i opcjonalnym wykładnikiem; mogą być poprzedzone literą l (double* zamiast float*) % - znak % znak typ arg. dane wejściowe c char * znaki; dalsze znaki danych wejściowych (domyślnie 1) są umieszczane we wskazanym miejscu pamięci; pomijanie białych znaków wstrzymane; aby odczytać jeden znak drukowalny, używamy zapisu %1s

Argumenty linii poleceń

Argumenty linii poleceń

Kopiowanie plików

Absolutne minimum (1) Dostęp do pliku uzyskuje się funkcją fopen(). Otwierając plik należy określić tryb dostępu (odczyt, zapis, dołączanie). Po otwarciu pliku dostęp do pliku uzyskujemy przy użyciu wskaźnika do pliku FILE*. Po zakończeniu pracy z plikiem należy go zamknąć funkcją fclose().

Absolutne minimum (2) Do zapisu/odczytu można wykorzystać funkcje fprintf()/fscanf(). Standardowe strumienie danych stdin, stdout, stderr.