lab 15

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]);

1.

Dany jest plik binarny "liczby.dat". Plik ten zawiera 10 liczb

rzeczywistych pojedynczej precyzji. Odczytaj je, oblicz ich

sumę oraz średnią i dopisz na końcu pliku.

[http://we.pb.edu.pl/~pmyszkowski/dydaktyka/liczby.dat]

2.

Dany jest plik binarny "punkty.bin", zawierający

współrzędne 10-ciu punktów na płaszczyźnie w kolejności

x1, y1, x2, y2,… (liczby typu float). Pobierz współrzędne z

pliku i oblicz, który punkt leży najdalej od początku układu

współrzędnych. Wykorzystaj funkcję użytkownika do

obliczania odległości. Wypisz stosowny komunikat.

[http://we.pb.edu.pl/~pmyszkowski/dydaktyka/punkty.bin]

3.

Dany jest plik binarny "struktura.dat", zawierający dane do

struktury zdefiniowanej w pliku "struktura.cpp". Odczytaj

wartości do struktury z pliku i wypisz na ekranie w postaci

zdania.

[http://we.pb.edu.pl/~pmyszkowski/dydaktyka/struktura.dat]
[http://we.pb.edu.pl/~pmyszkowski/dydaktyka/struktura.cpp]

4. Zadania do zrobienia

4. Zadania do zrobienia

background image

6

Dzi

Dzi

ę

ę

kuj

kuj

ę

ę

za uwag

za uwag

ę

ę


Wyszukiwarka

Podobne podstrony:
Pomiar wilgotności względnej powietrza przechowalnictwo lab 15
W2K3-15-raport, WAT, SEMESTR VII, Systemy operacyjne windows, Systemy operacyjne windows, sow, W2K3-
Lab 8, 15 - rdzenie wiertnicze, SKAŁY15, Nr ˙wiczenia
Lab 15, Notatki, FIZYKA, SEMESTR II, laborki, lab
LAB 15 OPIS I WNIOSKI, sgsp, Hydromechanika, HYDROMECHANIKA 1
lab 15 5 2
lab, Lab 15, WOJSKOWA AKADEMIA TECHNICZNA
okładka-sb lab 15, Chemia Fizyczna, chemia fizyczna- laborki rozne, Rozne
IE RS lab 15 diagram
lab 15 3 2
lab 15 5 5
Lab 15 id 257443 Nieznany
IE RS lab 15 overview
Zamrażanie owiewowe przecho lab 15
lab. 15 - baron, Chemia fizyczna AGH laborki, lab 15
Pomiar wilgotności względnej powietrza przechowalnictwo lab 15
W2K3-15-raport, WAT, SEMESTR VII, Systemy operacyjne windows, Systemy operacyjne windows, sow, W2K3-
Lab 15 tez kurwa

więcej podobnych podstron