Jezyk C cz 3

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

15

Język C – częśd 3

Obsługa plików

Plik (ang. file), jest to ciąg danych (inaczej zbiór danych), o skooczonej długości,
posiadający szereg atrybutów i stanowiący dla systemu operacyjnego całośd

Przykład 10

/* Hello World! – fprintf() */

#include <stdio.h>

int main ()
{
FILE *plik;
char tekst[] = "Hello World!";
if((plik = fopen("test.txt", "w"))==NULL) {

printf ("Błąd otwarcia pliku\n");

exit(1);

}
fprintf (plik, "%s", tekst);
fclose (plik);
return 0;
}

FILE *nazwa;

Instrukcja FILE *nazwa; służy do deklaracji wskaźnika pliku, na którym będziemy
wykonywad wszystkie operacje związane w obsługą pliku (przykładowo otwarcie
i zamknięcie pliku, zapis do pliku, odczyt z pliku)

fopen(char *nazwa_pliku, char *rodzaj_dostępu)

Polecenie fopen() służy do otwarcia pliku o nazwie nazwa_pliku, z określeniem
jakiego rodzaju dostęp do pliku nas interesuje. Wśród dozwolonych dostępów są
przykładowo:
"w"

tworzenie pliku tekstowego do zapisu

"r"

otwieranie pliki tekstowego do odczytu

"a"

dołączanie do pliku tekstowego


fopen("test.txt", "w")) oznacza że do pliku test.txt będziemy zapisywad
jakieś informacje

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

16

fclose(char *nazwa_pliku)

Polecenie fclose() służy do zamknięcia wcześniej otwartego pliku. Należy pamiętad,
że każdy nieużywany w programie plik, powinien zostad zamknięty przed zakooczeniem
działania programu.

fprintf(char *nazwa_pliku, "%s", zmienna_tekstowa)

Instrukcja fprintf() służy do zapisania zmiennej tekstowej czy liczbowej do
otwartego wcześniej pliku. Konstrukcja tego polecenia jest analogiczna do polecenia
printf(). W poleceniu fprintf() musimy dodatkowo określid nazwę pliku, do
którego chcemy zapisad zmienną, oraz określid, jakiego typu będzie to zmienna.
"%s" oznacza, że w pliku będziemy zapisywad tekst (patrz Język C – strona 5).

fscanf(char *nazwa_pliku, "%s", zmienna_tekstowa)

Instrukcja fscanf() służy do odczytania zmiennej (w tym wypadku tekstowej)
z wcześniej otwartego pliku.

Przykład 11

/* Hello World! - fscanf() */

#include <stdio.h>

int main ()
{
FILE *plik;
char tekst[20];
if ((plik = fopen("test.txt", "r"))==NULL) {

printf ("Błąd otwarcia pliku\n");

exit(1);

}
fscanf(plik, "%s", &tekst);
fclose (plik);

printf("%s\n", tekst);

return 0;
}

Program wykorzystuje wcześniej utworzony plik "test.txt". Zauważyd możemy, iż
na ekranie monitora wyświetla się jedyne napis Hello. Dzieje się tak, dlatego że

background image

Język C, © Daniel Pociecha, danpoc@agh.edu.pl

17

funkcja fscanf() czyta tekst do napotkania pustego znaku. Aby odczytad dalszą
częśd tekstu, należy ponownie użyd funkcji fscanf().

Czytając długi tekst trudno nam określid ile razy należy użyd funkcji fscanf(), aby
przeczytad całośd. Tu przydatna okazad się może stała EOF, która reprezentuje koniec
pliku (ang. End Of File). Zastosowanie EOF jest stosunkowo proste, wystarczy po
każdym użyciu funkcji fscanf(), sprawdzid czy przeczytana wartośd nie jest
znacznikiem kooca pliku, (czyli równa EOF).

Przykład 12

/* Odczytywanie zawartości pliku */

#include <stdio.h>

int main ()
{
FILE *plik;
char tekst[20];
if ((plik =fopen("test.txt", "r"))==NULL) {

printf ("Błąd otwarcia pliku\n");

exit(1);

}
while(fscanf(plik, "%s", &tekst) != EOF)

printf("%s ", tekst);


fclose (plik);

return 0;
}

ZADANIE 14. Przepisz zawartośd pliku "test.txt", do pliku "kopia.txt"

ZADANIE 15. Napisz program liczący

kwadraty i sześciany liczb od jednego do stu, wynik

należy zapisad do pliku

"liczby.txt"


ZADANIE 16. Zmodyfikuj ZADANIE 12 (wyznaczanie Największego wspólnego dzielnika
liczb a i b) tak, by liczby a i b były wczytywane z pliku "NWD.txt" a wynik obliczeo
wyświetlany w terminalu


Wyszukiwarka

Podobne podstrony:
Wyklad Jezyk C cz 1 Wyklad Jezyk C cz 1
Wyklad Jezyk C cz 2 Wyklad Jezyk C cz 2
jeżyk cz TR63FC7CGYRVEOFBHCH5BOV7TZ6CXXUG6JREQAA
Jezyk C cz 2
Jezyk C cz 1
jezyk C skrypt cz 1
Anglistyka 2 rok Egzamin z przedmiotu Język polski jako narzędzie pracy tłumacza z dr M Kresą cz 1
Koncepcja bohatera III cz Dziadów dlaczego ponosi klęskę, SZKOŁA, język polski, romantyzm
Prezenterzy sportowi i piękny język polski cz 2
Pisarze baroku i oświecenia w trosce o dobro kraju+tryumf cz, Szkoła, Język polski, Wypracowania
Cz 1 Język Japoński Część I (słownictwo)
sekret alchemika Sędziwoja cz. 01, STUDIA JEZYK POLSKI, Współczesna proza polska
Ocena postawy społeczeństwa polskiego w III cz Dziadów, SZKOŁA, język polski, romantyzm
Io 5 Język UML, cz I
sekret alchemika Sędziwoja cz. 04, STUDIA JEZYK POLSKI, Współczesna proza polska
sekret alchemika Sędziwoja cz. 02, STUDIA JEZYK POLSKI, Współczesna proza polska
Cz 1 Jezyk Japonski Czesc I id Nieznany

więcej podobnych podstron