pp wyklad4 ppt

background image

Programowanie w C

Wykład 4

Temat: Operacje we/wy - obsługa plików

background image

Funkcje otwarcia i zamknięcia pliku

FILE* fopen (const char* namefile, const char* mode);

namefile - nazwa pliku

mode - tryb ustawienia pliku:

r - do czytania; zbiór musi istnieć

w - otwiera pusty zbiór do zapisu; jeśli plik istnieje kasuje jego

zawartość

a - do zapisu na końcu zbioru; jeśli plik nie istnieje tworzy nowy

r+ - otwiera istniejący plik do zapisu i odczytu

w+ - otwiera pusty plik do zapisu i odczytu; istniejący plik kasuje

a+ - otwiera do odczytu i zapisu na końcu pliku; jeżeli plik nie

istnieje to go tworzy.

b - otwiera plik w trybie binarnym

a i a+ - zapisuje zawsze na końcu mimo użycia funkcji

pozycjonującej fseek()

w i w+ - zawsze kasuje istniejący plik

#include <stdio.h>

#include <stdio.h>

background image

Funkcje otwarcia i zamknięcia pliku

int fclose (FILE* pfile);

Funkcja zwraca wartość:

0 – jeżeli zamknięcie pliku zostało wykonane poprawnie;

EOF – w przypadku błędu operacji zamykania pliku (-1).

#include <stdio.h>

void

main()

{

FILE

* pfile = fopen(”plik.txt”, ”rt”);

if (pfile)
{

printf(”Plik otwarty.\n”);

fclose(pfile);

}
else printf(”Błąd otwarcia pliku!\n”);

}

background image

Funkcje fgetc, fputc, fgets, fputs

Odczyt znaku ze strumienia:

int fgetc(FILE* stream);

Fgetc czyta znak ze
strumienia stream jako
unsigned char i
przekształca do int .

Zwraca znak czytany lub
EOF jeśli powstał błąd lub
napotkano EOF (end of
file).

Zapis znaku do strumienia:

int fputc(int c, FILE* stream);

Fputc zapisuje
pojedynczy znak do
zbioru.

Zwraca pisany znak lub
EOF jeśli powstał błąd lub
napotkano EOF.

Odczyt stringu ze strumienia:

char* fgets(char* string, int n, FILE* stream);

Odczytuje ze strumienia
stream
ciąg znaków aż do:
- pierwszego znaku '\n'
(włącznie)
- do końca strumienia
- lub gdy przeczytano n-1
znaków

i wstawia je do stringu

dołączając na końcu '\0‘.

Zwraca

string lub
NULL jeśli
powstał błąd
lub
napotkano
EOF.

Zapis stringu do strumienia:

int fputs(char* string, FILE* stream);

Wysyła string do
strumienia wskazanego
parametrem stream, bez
końcowego znaku '\0'.

Zwraca EOF jeśli
powstał błąd, w
przeciwnym razie
wartość różną od 0.

#include <stdio.h>

#include <stdio.h>

background image

Formatowany zapis do zbioru

Funkcja

Opis

Wartość zwracana

int fprintf (FILE *stream, const *

format,...);

Funkcja formatuje i
wpisuje
dane do strumienia
określonego
parametrem stream.

Zwraca liczbę
zapisanych znaków lub
-1 gdy wystąpił błąd.

int fscanf (FILE *stream, const *

format,...);

Funkcja czyta dane ze
strumienia określonego
parametrem stream, od
bieżącej pozycji, i
umieszcza w miejscu
pamięci wskazanym w
parametrze nieustalonym.

Zwraca liczbę
przepisanych
danych wejściowych,
gdy
wystąpił błąd: 0 lub
EOF napotkano koniec
zbioru.

#include <stdio.h>

#include <stdio.h>

”File pointer” w przypadku powodzenia w obu
operacjach przesuwa się o liczbę bajtów
przeczytanych/zapisanych w zbiorze.

int feof(FILE* file);

// zwraca wartość niezerową gdy

// napotka koniec pliku

background image

Odczyt i zapis do pliku n elementów o

określonym rozmiarze

! Ponieważ najczęściej powyższe funkcje stosuje się do

przesyłania bardziej złożonych obiektów, takich jak np.

struktury, przykład ich wykorzystania podany będzie

przy okazji omawiania struktur !

background image

Sterowanie wskaźnikiem pozycji

strumienia

background image

Sterowanie wskaźnikiem pozycji

strumienia

Przykładowy program...

background image

Obsługa błędów

Kiedy jakaś operacja nie powiedzie się, pojawia się błąd i dla

danego strumienia (pliku) ustawiany jest wskaźnik błędu.

Informacje o ostatnio popełnionym błędzie przechowywane

są w zmiennych [

int errno, _doserrno, sys_nerr

(w

stdlib.h)] gdzie:

errno

- numer błędu operacji matematycznych lub systemu

DOS;

_doserrno

- numer błędu dla systemu DOS;

sys_nerr

- zawiera liczbę komunikatów w tablicy

sys_errlist[]

;

komunikaty znajdują się w tablicy

char *sys_errlist[]

;

funkcja

perror

jest używana do drukowania komunikatów.

background image

Obsługa błędów

background image

Obsługa błędów

background image

Argumenty funkcji ”main”

#include <conio.h>
#include <stdio.h>

int

main (

int

argc,

char *

argv[])

{

int

i;

switch (argc)
{

case 1:

printf (

"Program uruchomiono bez parametrow!\n"

);

break;

default:

printf (

"Parametry uruchomieniowe programu:\n"

);

for (i = 1; i < argc; i++)

printf (

"%d: %s\n"

, i, argv[i]);

break;

}

printf (

"\nNacisnij dowolny przycisk, aby zakonczyc...\n"

);

getch ();

return 0;

}


Document Outline


Wyszukiwarka

Podobne podstrony:
pp wyklad2 ppt
pp wyklad3 ppt
pp wyklad1 ppt
pp wyklad5 ppt
Proces pielęgnowania wykład 3 ppt
wyklad 2(1) ppt
Wsparcie jako element procesu pielęgnowania wykład ppt
Wyklad4 ppt
PP wykład w pigułce
PP wyklad' 03 2011r
pp wykłady, psychologia moje
pp wykłady 4 styczeń
PP wykłady
PP wyklad 02 2011r

więcej podobnych podstron