laboratorium jezyk c7

background image

Laboratorium nr 7

1/5

1)

Pliki.


Plik (ang. file), jest to nazwany ciąg danych (inaczej zbiór danych), o skończonej

długości, posiadający szereg atrybutów i stanowiący dla systemu operacyjnego całość.

Język C posiada w pliku nagłówkowym <stdio.h> zadeklarowane funkcje służące do

obsługi plików. Funkcje te pozwalają na otwieranie, tworzenie oraz modyfikację różnych

plików zarówno tekstowych (ASCII) jak i też binarnych. Podstawową strukturą opisującą plik

(jako zbiór danych na dysku) jest typ danych „FILE” tzw. typ plikowy. Za pomocą wskaźnika

na zmienną plikową możemy mieć dostęp do pliku. Deklaracja wskaźnika na taką zmienną

jest następująca:

FILE *plik;

2)

Otwieranie pliku.

Do otworzenia pliku w języku C służy funkcja fopen(). Funkcja ta przyjmuje dwa

parametry. Pierwszym argumentem jest nazwa pliku. Drugim natomiast atrybut, który określa

w jaki sposób ma zostać otworzony plik (atrybuty można ze sobą łączyć). Funkcja zwraca

wskaźnik na zmienną plikową.

[wskaźnik na zmienną plikową] = fopen(”nazwa pliku”,”atrybut”);

Przykład:

FILE *plik;
plik = fopen(”dane.txt”,”r”);

Nazwa pliku jest to bezpośrednia nazwa pliku podana w cudzysłowach ” ”, lub z

podaniem katalogu. Oprócz bezpośredniej nazwy możemy podać też tablicę znaków

(łańcuch) zawierający ścieżkę do pliku lub samą nazwę pliku. Atrybut określa w jaki sposób

ma być otworzony plik lub też jakiego typu jest to plik.

Język C

Temat: Operacje na plikach.

Instrukcja

laboratoryjna

7

Przygotował: mgr inż. Maciej Lasota

background image

Laboratorium nr 7

2/5

• „r”

- otwórz plik do odczytu,

• „w”

- otwórz plik do zapisu, jeśli plik istniej skasuj poprzednią zawartość,

• „a”

- dopisuj do pliku, ewentualnie utwórz plik z dopisywaniem do końca pliku,

• „r+”

- otwórz plik tekstowy do odczytu i zapisu,

• „w+” - utwórz plik tekstowy do aktualizacji skasuj plik jeśli istnieje,

• „a+” - dopisuj do pliku, ewentualnie utwórz plik do aktualizacji,

• „b”

- otwórz plik binarny.

3)

Odczyt danych z pliku.

W języku C wyróżniamy kilka sposobów służących do odczytu danych z pliku. Dwie

podstawowe funkcje służące do tego celu to fgetc() oraz fgets(). Funkcje te zadeklarowane

są w pliku nagłówkowym <stdio.h>.

fgetc(strumien) – funkcja ta odczytuj pojedynczy znak z pliku i zwraca liczbę

całkowitą (kod ASCII) odpowiadającą danemu znakowi.

fgets(tablica,n,strumien) – funkcja odczytuje co najwyżej (n – 1) znaków z pliku i

wstawia je do podanej tablicy.

Innym sposobem na odczyt danych z pliku, jest wykorzystanie funkcji konwersji

Podobnie jak w przypadku wczytywania danych z klawiatury za pomocą scanf() istnieje

specjalna wersja przystosowana do wczytywania danych z pliku. Funkcją tą jest fscanf()

zadeklarowana jest ona w pliku nagłówkowym <stdio.h>.

int fscanf(FILE *strumien, const char *format, ...);

Przykład:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

FILE *plik;
int c;


background image

Laboratorium nr 7

3/5

if(argc != 2)
{

printf("Blad podaj nazwe pliku !!!\n");
exit(1);

}

plik = fopen(argv[1],"r");
printf("Odczytuje zawartosc pliku: %s\n\n",argv[1]);

if(plik == NULL)
{

printf("Blad otwarcia pliku ...\n");
exit(1);

}
while((c=fgetc(plik)) != EOF)
{

printf("%c",c);

}

printf("\n");
fclose(plik);

return (0);
}

4)

Zapis danych do pliku.

Również w przypadku zapisu danych do pliku, wyróżniamy kilka rodzajów funkcji

służących do tego celu.

fputc(c,strumien) – funkcja ta zapisuje pojedynczy znak „c” do pliku.

fputs(tablica,strumien) – funkcja ta zapisuje tekst zawarty w tablicy do pliku.

Podobnie do funkcji printf() istniej również funkcja konwersji służąca do zapisu

danych do pliku, jest nią funkcja fprintf().

int fprintf(FILE *strumien, const char *format, ...);

Pierwszym argumentem funkcji fprintf() jest wskaźnik na zmienną plikową, drugim

tekst formatujący czyli stała znakowa. Znak procenta oznacza rozpoczęcie tzw. specyfikatora

formatu. Specyfikator formatu pozwala na wprowadzenie w jego miejsce wartości kolejnych

argumentów funkcji printf() (wyjątek stanowi %%, który umożliwia wprowadzenie znaku „%”).

Znak „\” w tekście formatującym umożliwia wprowadzenie tzw. znaków specjalnych.

background image

Laboratorium nr 7

4/5

Przykład:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

FILE *plik;
int c;


if(argc != 2)
{

printf("Blad podaj nazwe pliku !!!\n");
exit(1);

}

if((plik = fopen(argv[1],"a")) == NULL)
{

printf("Blad otwarcia pliku ...\n");
exit(1);

}

printf("Zapisuje do pliku: %s\n\n",argv[1]);

while((c=getchar()) != '#')
{

fputc((int)c,plik);

}

fclose(plik);
return (0);
}

Przykład:

#include <stdio.h>
#include <stdlib.h>
#define MAX 255

int main(int argc, char *argv[])
{

FILE *plik;
char linia[MAX];
int c,i;


if(argc != 2)
{

printf("Blad podaj nazwe pliku !!!\n");
exit(1);

}


background image

Laboratorium nr 7

5/5

if((plik = fopen(argv[1],"a")) == NULL)
{

printf("Blad otwarcia pliku ...\n");
exit(1);

}

while(gets(linia) != NULL && linia[0] != '\0')
{

fprintf(plik,"%s\n",linia);

}

fclose(plik);
return (0);
}

5)

Zamknięcie pliku.

Ważnym elementem w przypadku obsługi plików jest każdorazowe zamknięcie pliku

po wykonaniu na nim operacji (zapisu lub odczytu). Do tego celu służy funkcja fclose().

Funkcja ta przyjmuje jeden parametr jest nim wskaźnik na zmienną plikową.

int fclose(FILE *strumien);

Przykład:

FILE *plik;
plik = fopen(”test.txt”,”r”);
...
...
...
fclose(plik);


Wyszukiwarka

Podobne podstrony:
Laboratorium jezyk c7 2013
Laboratorium jezyk c4 2013
Laboratorium jezyk c6 2013
Laboratorium jezyk c3 2013
Laboratorium jezyk c3
Laboratorium jezyk c5 2013
Laboratorium jezyk c6 2013
Laboratorium jezyk c2 2013 id 3 Nieznany
Plan laboratorium-język C, Informatyka
Laboratorium jezyk c3 2013
Laboratorium jezyk c4 2013
Laboratorium jezyk c6 2013
REGULAMIN KORZYSTANIA Z LABORATORIUM KOMPUTEROWEGO, Automatyka i Robotyka, Język programowania
Kontrola badań laboratoryjnych
badania laboratoryjne 6
ROZRÓD Badanie terenowe i laboratoryjne mleka

więcej podobnych podstron