lab 03

background image

1

mgr in

mgr in

ż

ż

. Pawe

. Pawe

ł

ł

Myszkowski

Myszkowski

Metodyki i Techniki

Metodyki i Techniki

Programowania 2

Programowania 2

zaj

zaj

ę

ę

cia nr 3

cia nr 3

Elektronika i Telekomunikacja, semestr III

Elektronika i Telekomunikacja, semestr III

rok akademicki 2009/2010

rok akademicki 2009/2010

Plan dzisiejszych zaj

Plan dzisiejszych zaj

ęć

ęć

1.

1.

Dost

Dost

ę

ę

p do plik

p do plik

ó

ó

w

w

-

-

przypomnienie

przypomnienie

2.

2.

Zapis i odczyt dla plik

Zapis i odczyt dla plik

ó

ó

w binarnych

w binarnych

3.

3.

Przyk

Przyk

ł

ł

ady odwo

ady odwo

ł

ł

a

a

ń

ń

do plik

do plik

ó

ó

w binarnych

w binarnych

4.

4.

Zadania do zrobienia

Zadania do zrobienia

background image

2

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.

Dost

Dost

ę

ę

p do plik

p do plik

ó

ó

w

w

-

-

przypomnienie

przypomnienie

1.

1.

Dost

Dost

ę

ę

p do plik

p do plik

ó

ó

w

w

-

-

przypomnienie

przypomnienie

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

3

1.

1.

Dost

Dost

ę

ę

p do plik

p do plik

ó

ó

w

w

-

-

przypomnienie

przypomnienie

Aby otworzy

Aby otworzy

ć

ć

plik jako binarny, w

plik jako binarny, w

ł

ł

a

a

ń

ń

cuchu znak

cuchu znak

ó

ó

w okre

w okre

ś

ś

laj

laj

ą

ą

cym tryb

cym tryb

dost

dost

ę

ę

pu na ko

pu na ko

ń

ń

cu dodajemy literk

cu dodajemy literk

ę

ę

"b",

"b",

np

np

. "

. "

rb

rb

", "

", "

w+b

w+b

". Bez tego plik

". Bez tego plik

jest traktowany jako tekstowy.

jest traktowany jako tekstowy.

2. Zapis i odczyt dla plik

2. Zapis i odczyt dla plik

ó

ó

w binarnych

w binarnych

Czytanie danych z pliku:

Czytanie danych z pliku:





fread

fread

odczytuje z pliku okre

odczytuje z pliku okre

ś

ś

lon

lon

ą

ą

ilo

ilo

ść

ść

bajt

bajt

ó

ó

w

w

nag

nag

ł

ł

ó

ó

wek:

wek:

int

int

fread(void

fread(void

*p,

*p,

int

int

rozm

rozm

,

,

int

int

ile, FILE *plik);

ile, FILE *plik);

Przyk

Przyk

ł

ł

ad:

ad:

FILE *plik;

FILE *plik;

float

float

liczba;

liczba;

plik =

plik =

fopen("jakis_plik.bin","rb

fopen("jakis_plik.bin","rb

");

");

fread(&liczba,sizeof(float),1,plik);

fread(&liczba,sizeof(float),1,plik);

fclose(plik

fclose(plik

);

);

background image

4

2. Zapis i odczyt dla plik

2. Zapis i odczyt dla plik

ó

ó

w binarnych

w binarnych

Zapisywanie danych do pliku:

Zapisywanie danych do pliku:





fwrite

fwrite

zapisuje do pliku okre

zapisuje do pliku okre

ś

ś

lon

lon

ą

ą

ilo

ilo

ść

ść

bajt

bajt

ó

ó

w

w

nag

nag

ł

ł

ó

ó

wek:

wek:

int

int

fwrite(void

fwrite(void

*p,

*p,

int

int

rozm

rozm

,

,

int

int

ile, FILE *plik);

ile, FILE *plik);

Przyk

Przyk

ł

ł

ad:

ad:

FILE *plik;

FILE *plik;

float

float

liczba=1924;

liczba=1924;

plik =

plik =

fopen("jakis_plik.bin","wb

fopen("jakis_plik.bin","wb

");

");

fwrite(&liczba,sizeof(liczba),1,plik);

fwrite(&liczba,sizeof(liczba),1,plik);

fclose(plik

fclose(plik

);

);

3. Przyk

3. Przyk

ł

ł

ady odwo

ady odwo

ł

ł

a

a

ń

ń

do plik

do plik

ó

ó

w binarnych

w binarnych

FILE *plik1, *plik2;

FILE *plik1, *plik2;

float

float

d1=1.5, d2;

d1=1.5, d2;

float

float

tab1[5]={1.0, 2.0, 3.0, 4.0, 5.0};

tab1[5]={1.0, 2.0, 3.0, 4.0, 5.0};

float

float

tab2[5];

tab2[5];

//zapis

//zapis

plik1 =

plik1 =

fopen("dane.bin","wb

fopen("dane.bin","wb

");

");

fwrite(&d1, sizeof(float),1,plik1);

fwrite(&d1, sizeof(float),1,plik1);

fwrite(tab1, sizeof(float),5,plik1);

fwrite(tab1, sizeof(float),5,plik1);

fclose(plik1);

fclose(plik1);

background image

5

3. Przyk

3. Przyk

ł

ł

ady odwo

ady odwo

ł

ł

a

a

ń

ń

do plik

do plik

ó

ó

w binarnych

w binarnych

//odczyt

//odczyt

plik2 =

plik2 =

fopen("dane.bin","rb

fopen("dane.bin","rb

");

");

fread(&d2, sizeof(d2),1,plik2);

fread(&d2, sizeof(d2),1,plik2);

fread(tab2, sizeof(tab2),1,plik2);

fread(tab2, sizeof(tab2),1,plik2);

fclose(plik2);

fclose(plik2);

//sprawdzenie

//sprawdzenie

printf("d2 = %.2f

printf("d2 = %.2f

\

\

n",d2);

n",d2);

printf("tab2 = ");

printf("tab2 = ");

for (

for (

int

int

i=0;i<5;i++)

i=0;i<5;i++)

printf("%.2f ",tab2[i]);

printf("%.2f ",tab2[i]);


Wyszukiwarka

Podobne podstrony:
Lab 03 C introduction
Lab 03
Lab 03 Analiza obwodu elektrycz Nieznany
385 SPC Lab 03 LQR id 36426
CMS Lab 03 JoomlaPack
Systemy Lab 03
487 SKiTI LAB 03
Lab 03 Strumienie
lab 03
lab 03
LAB 7 03
MP Lab 03 Przelewy, 3
Lab 03 2011 2012
LAB 03 id 258787 Nieznany
tei lab 03 dokument techniczny
Lab 03 Strumienie
lab 03
fiz lab 03

więcej podobnych podstron