lab 14

background image

1

Informatyka 1

Informatyka 1

zaj

zaj

ę

ę

cia nr 14

cia nr 14

Elektrotechnika, semestr II

Elektrotechnika, semestr II

rok akademicki 2008/2009

rok akademicki 2008/2009

mgr in

mgr in

ż

ż

. Pawe

. Pawe

ł

ł

Myszkowski

Myszkowski

Plan dzisiejszych zaj

Plan dzisiejszych zaj

ęć

ęć

1.

1.

Operacje na plikach

Operacje na plikach

-

-

wprowadzenie

wprowadzenie

2.

2.

Zapis i odczyt dla plik

Zapis i odczyt dla plik

ó

ó

w tekstowych

w tekstowych

3.

3.

Przyk

Przyk

ł

ł

ady odwo

ady odwo

ł

ł

a

a

ń

ń

do plik

do plik

ó

ó

w tekstowych

w tekstowych

4.

4.

Zadania do zrobienia

Zadania do zrobienia

background image

2

1.

1.

Operacje na plikach

Operacje na plikach

-

-

wprowadzenie

wprowadzenie

Plik:

Plik:

-

-

z punktu widzenia u

z punktu widzenia u

ż

ż

ytkownika jest to zbi

ytkownika jest to zbi

ó

ó

r

r

danych na dysku,

danych na dysku,

-

-

z punktu widzenia kompilatora jest to logiczna

z punktu widzenia kompilatora jest to logiczna

interpretacja zbioru danych,

interpretacja zbioru danych,

-

-

w j

w j

ę

ę

zyku C plik niekoniecznie musi oznacza

zyku C plik niekoniecznie musi oznacza

ć

ć

zbi

zbi

ó

ó

r

r

na dysku (mo

na dysku (mo

ż

ż

e by

e by

ć

ć

skojarzony z klawiatur

skojarzony z klawiatur

ą

ą

).

).

1.

1.

Operacje na plikach

Operacje na plikach

-

-

wprowadzenie

wprowadzenie

Krok 1

Krok 1

skojarzenie pliku ze zbiorem

skojarzenie pliku ze zbiorem

danych, czyli otwarcie pliku.

danych, czyli otwarcie pliku.

FILE *zmienna

FILE *zmienna

//wska

//wska

ź

ź

nik pliku

nik pliku

Wska

Wska

ź

ź

nik wskazuje na pewn

nik wskazuje na pewn

ą

ą

struktur

struktur

ę

ę

zadeklarowan

zadeklarowan

ą

ą

w pliku <

w pliku <

stdio.h

stdio.h

>. Zawiera ona informacje o pliku,

>. Zawiera ona informacje o pliku,

m.in. po

m.in. po

ł

ł

o

o

ż

ż

enie bufora, rodzaj dost

enie bufora, rodzaj dost

ę

ę

pu do pliku,

pu do pliku,

sygna

sygna

ł

ł

y o wyst

y o wyst

ą

ą

pieniu b

pieniu b

łę

łę

d

d

ó

ó

w.

w.

background image

3

1.

1.

Operacje na plikach

Operacje na plikach

-

-

wprowadzenie

wprowadzenie

Do otwarcia pliku s

Do otwarcia pliku s

ł

ł

u

u

ż

ż

y funkcja

y funkcja

fopen

fopen

().

().

FILE *zmienna =

FILE *zmienna =

fopen("

fopen("

nazwa_pliku

nazwa_pliku

","

","

tryb

tryb

");

");

nazwa_pliku

nazwa_pliku

nazwa zbioru na dysku, mo

nazwa zbioru na dysku, mo

ż

ż

e by

e by

ć

ć

razem ze

razem ze

ś

ś

cie

cie

ż

ż

k

k

ą

ą

dost

dost

ę

ę

pu

pu

tryb

tryb

okre

okre

ś

ś

la spos

la spos

ó

ó

b dost

b dost

ę

ę

pu do pliku

pu do pliku

1.

1.

Operacje na plikach

Operacje na plikach

-

-

wprowadzenie

wprowadzenie

Tryby dost

Tryby dost

ę

ę

pu do pliku:

pu do pliku:

"r"

"r"

czytanie

czytanie

"w"

"w"

zapisywanie

zapisywanie

je

je

ś

ś

li plik nie istnieje

li plik nie istnieje

-

-

zostanie utworzony

zostanie utworzony

je

je

ś

ś

li plik istnieje

li plik istnieje

zostanie nadpisany

zostanie nadpisany

"a"

"a"

dopisywanie

dopisywanie

na ko

na ko

ń

ń

cu istniej

cu istniej

ą

ą

cego lub na pocz

cego lub na pocz

ą

ą

tku nowego

tku nowego

"r+"

"r+"

czytanie z mo

czytanie z mo

ż

ż

liwo

liwo

ś

ś

ci

ci

ą

ą

zapisywania

zapisywania

"w+"

"w+"

zapisywanie z mo

zapisywanie z mo

ż

ż

liwo

liwo

ś

ś

ci

ci

ą

ą

czytania

czytania

"a+"

"a+"

dopisywanie z mo

dopisywanie z mo

ż

ż

liwo

liwo

ś

ś

ci

ci

ą

ą

czytania

czytania

background image

4

1.

1.

Operacje na plikach

Operacje na plikach

-

-

wprowadzenie

wprowadzenie

Rodzaje plik

Rodzaje plik

ó

ó

w:

w:

Pliki tekstowe

Pliki tekstowe

podzielone na wiersze (linie), z

podzielone na wiersze (linie), z

kt

kt

ó

ó

rych ka

rych ka

ż

ż

dy ko

dy ko

ń

ń

czy si

czy si

ę

ę

znakiem ko

znakiem ko

ń

ń

ca wiersza.

ca wiersza.

Ca

Ca

ł

ł

y plik ko

y plik ko

ń

ń

czy si

czy si

ę

ę

znakiem ko

znakiem ko

ń

ń

ca pliku (EOF).

ca pliku (EOF).

Pliki binarne

Pliki binarne

nie maj

nie maj

ą

ą

okre

okre

ś

ś

lonej struktury

lonej struktury

Aby otworzy

Aby otworzy

ć

ć

plik jako binarny, w

plik jako binarny, w

ł

ł

a

a

ń

ń

cuchu znak

cuchu znak

ó

ó

w

w

okre

okre

ś

ś

laj

laj

ą

ą

cym tryb dost

cym tryb dost

ę

ę

pu na ko

pu na ko

ń

ń

cu dodajemy

cu dodajemy

literk

literk

ę

ę

"b",

"b",

np

np

. "

. "

rb

rb

", "

", "

w+b

w+b

". Bez tego plik jest

". Bez tego plik jest

traktowany jako tekstowy.

traktowany jako tekstowy.

1.

1.

Operacje na plikach

Operacje na plikach

-

-

wprowadzenie

wprowadzenie

Zamykanie pliku

Zamykanie pliku

Po zako

Po zako

ń

ń

czeniu pracy z plikiem nale

czeniu pracy z plikiem nale

ż

ż

y go

y go

zamkn

zamkn

ąć

ąć

. S

. S

ł

ł

u

u

ż

ż

y do tego funkcja

y do tego funkcja

fclose

fclose

.

.

int

int

fclose(FILE

fclose(FILE

*zmienna);

*zmienna);

background image

5

Schemat przetwarzania pliku

Schemat przetwarzania pliku

FILE *

FILE *

plik=fopen("D:

plik=fopen("D:

\

\

\

\

student

student

\

\

\

\

plik.txt","r

plik.txt","r

");

");

//otwarcie

//otwarcie

if

if

(

(

plik==NULL

plik==NULL

)

)

//kontrola b

//kontrola b

łę

łę

d

d

ó

ó

w

w

{

{

printf("Blad

printf("Blad

otwarcia

otwarcia

pliku

pliku

\

\

n

n

");

");

getch

getch

(); exit(

(); exit(

-

-

1);

1);

}

}

/* przetwarzanie pliku

/* przetwarzanie pliku

zapis lub odczyt */

zapis lub odczyt */

fclose(plik

fclose(plik

)

)

//zamkni

//zamkni

ę

ę

cie

cie

1.

1.

Operacje na plikach

Operacje na plikach

-

-

wprowadzenie

wprowadzenie

2. Zapis i odczyt dla plik

2. Zapis i odczyt dla plik

ó

ó

w tekstowych

w tekstowych

Czytanie i zapisywanie pojedynczych znak

Czytanie i zapisywanie pojedynczych znak

ó

ó

w:

w:





fgetc

fgetc

odczytuje z pliku jeden znak

odczytuje z pliku jeden znak

nag

nag

ł

ł

ó

ó

wek:

wek:

int

int

fgetc(FILE

fgetc(FILE

*plik);

*plik);





fputc

fputc

zapisuje do pliku jeden znak

zapisuje do pliku jeden znak

nag

nag

ł

ł

ó

ó

wek:

wek:

int

int

fputc(char

fputc(char

znak, FILE *plik);

znak, FILE *plik);

Przyk

Przyk

ł

ł

ad:

ad:

FILE *plik;

FILE *plik;

plik

plik

=

=

fopen("jakis_plik.txt","r+t

fopen("jakis_plik.txt","r+t

");

");

char znak =

char znak =

fgetc(plik

fgetc(plik

);

);

fputc(znak,plik

fputc(znak,plik

);

);

background image

6

2. Zapis i odczyt dla plik

2. Zapis i odczyt dla plik

ó

ó

w tekstowych

w tekstowych

Czytanie i zapisywanie

Czytanie i zapisywanie

ł

ł

a

a

ń

ń

cuch

cuch

ó

ó

w znak

w znak

ó

ó

w:

w:





fgets

fgets

czyta z pliku

czyta z pliku

ł

ł

a

a

ń

ń

cuch znak

cuch znak

ó

ó

w o podanej d

w o podanej d

ł

ł

ugo

ugo

ś

ś

ci lub do

ci lub do

ko

ko

ń

ń

ca wiersza,

ca wiersza,

nag

nag

ł

ł

ó

ó

wek:

wek:

char*

char*

fgets(char

fgets(char

* linia,

* linia,

int

int

dl, FILE* plik);

dl, FILE* plik);





fputs

fputs

zapisuje

zapisuje

ł

ł

a

a

ń

ń

cuch znak

cuch znak

ó

ó

w do pliku,

w do pliku,

nag

nag

ł

ł

ó

ó

wek:

wek:

int

int

fputs(char

fputs(char

* linia, FILE *plik);

* linia, FILE *plik);

Przyk

Przyk

ł

ł

ad:

ad:

FILE *plik;

FILE *plik;

char *linia;

char *linia;

plik =

plik =

fopen("jakis_plik.txt","rt

fopen("jakis_plik.txt","rt

");

");

fgets

fgets

(linia,255,plik);

(linia,255,plik);

printf("Linia

printf("Linia

z pliku: %

z pliku: %

s",linia

s",linia

);

);

2. Zapis i odczyt dla plik

2. Zapis i odczyt dla plik

ó

ó

w tekstowych

w tekstowych

Odczyt i zapis sformatowany:

Odczyt i zapis sformatowany:





fscanf

fscanf

dzia

dzia

ł

ł

a tak jak

a tak jak

scanf

scanf

, ale ma dodatkowy parametr,

, ale ma dodatkowy parametr,

nag

nag

ł

ł

ó

ó

wek:

wek:

int

int

fscanf(FILE

fscanf(FILE

* plik,

* plik,

const

const

char* format,

char* format,

);

);





fprintf

fprintf

dzia

dzia

ł

ł

a tak jak

a tak jak

printf

printf

, ale ma dodatkowy parametr,

, ale ma dodatkowy parametr,

nag

nag

ł

ł

ó

ó

wek:

wek:

int

int

fprintf(FILE

fprintf(FILE

* plik,

* plik,

const

const

char* format,

char* format,

);

);

Przyk

Przyk

ł

ł

ad:

ad:

FILE *plik;

FILE *plik;

int

int

liczba=21;

liczba=21;

plik =

plik =

fopen("jakis_plik.txt","wt

fopen("jakis_plik.txt","wt

");

");

fprintf(plik,"Liczba

fprintf(plik,"Liczba

zapisana do pliku to %

zapisana do pliku to %

d

d

\

\

n",liczba

n",liczba

);

);

background image

7

3. Przyk

3. Przyk

ł

ł

ady odwo

ady odwo

ł

ł

a

a

ń

ń

do plik

do plik

ó

ó

w tekst.

w tekst.

Czytanie z pliku znak po znaku:

Czytanie z pliku znak po znaku:

#

#

include

include

<

<

stdio.h

stdio.h

>

>

#

#

include

include

<

<

conio.h

conio.h

>

>

int

int

main

main

()

()

{

{

char znak;

char znak;

FILE* plik =

FILE* plik =

fopen("main.c","rt

fopen("main.c","rt

");

");

while((znak=fgetc(plik))!=EOF

while((znak=fgetc(plik))!=EOF

)

)

printf("%c",znak

printf("%c",znak

);

);

fclose(plik

fclose(plik

);

);

getch

getch

();

();

}

}

3. Przyk

3. Przyk

ł

ł

ady odwo

ady odwo

ł

ł

a

a

ń

ń

do plik

do plik

ó

ó

w tekst.

w tekst.

Czytanie z pliku linia po linii:

Czytanie z pliku linia po linii:

#

#

include

include

<

<

stdio.h

stdio.h

>

>

#

#

include

include

<

<

conio.h

conio.h

>

>

int

int

main

main

()

()

{

{

char linia[255];

char linia[255];

FILE* plik =

FILE* plik =

fopen("main.c","rt

fopen("main.c","rt

");

");

while((znak=fgets(linia,255,plik))!=NULL)

while((znak=fgets(linia,255,plik))!=NULL)

printf("%s",linia

printf("%s",linia

);

);

fclose(plik

fclose(plik

);

);

getch

getch

();

();

}

}

background image

8

Dzi

Dzi

ę

ę

kuj

kuj

ę

ę

za uwag

za uwag

ę

ę


Wyszukiwarka

Podobne podstrony:
elektro lab 14
lab 14 4 1 1
lab 14 4 3
Lab 14 - rozszerzalność, Skały14, Nr
Lab 14 - rozszerzalność, Skały141, Nr
lab 14, MIBM WIP PW, fizyka 2, sprawka fiza 2, fizyka, fizyka
lab 14 4 1 2
PW LAB 14
IE RS lab 14 diagram
IE RS lab 14 solutions
lab 14 3 5
lab 14 1 8
lab 14 3 7 2
Lab 14 - rozszerzalność, wsp.ciep.roz.14
lab t 14, t14 tabela pomiarowa, Przepływ współprądowy
lab 14 3 7 1
Lab 14 id 257442 Nieznany
elektro lab 14

więcej podobnych podstron