Metodyka i techniki programowania 11 Operacje na plikach

Mgr inż. Jacek Wszołek

Ćwiczenie 1. Odczyt z pliku

1. Zaimplementuj poniższy kod, pozwalający odczytać zawartość pliku r.txt: int main()

{

FILE *stream;

char list[128];

int numread;

if( (stream = fopen( "r.txt", "r" )) != NULL )

{

numread = fread( list, sizeof(char), 128, stream ); printf( "Number of cir elements read = %d\n", numread ); printf("%s ",list);

fclose( stream );

} else

printf( "File r.txt could not be opened\n" ); return 0;

}

2. Co się stanie jak ilość znaków w pliku r.txt będzie większa niż rozmiar tablicy list, a co się stanie jak będzie mniejsza? Przerób powyższy program tak, aby zawsze wypisywał

całą zawartość pliku.

3. Zapoznaj się z działaniem funkcji fseek i wypisz ostatnie 10 znaków z pliku r.txt.

4. Zapoznaj się z działaniem funkcji fgetc i wypisz pierwsze i ostatnie trzy znaki pliku r.txt.

5. Zapoznaj się z działaniem funkcji fgets i z jej pomocą wykonaj te same operacje co w punkcie 4.

6. Czym różnią się funkcje fgetc(), fgets() oraz fread()?

Ćwiczenie 2. Zapis do pliku

1. Zaimplementuj poniższy kod, pozwalający zapisać dane do pliku: int main()

{

FILE *stream;

char list [6]="proba";

int numwritten;

if( (stream = fopen( "myfile.txt", "w+t" )) != NULL )

{

numwritten = fwrite(list, sizeof(char), 5, stream ); printf( "Wrote %i items\n", numwritten ); fclose( stream );

}else

printf( "Problem opening the file\n" ); return 0;

}

2. Napisz program, który zapisuje odczytany plik do innego pliku.

3. Zapoznaj się z działaniem funkcji fputc. Na początek i na koniec pliku wpisz odpowiednio --! , !—-.

4. Zapoznaj się z działaniem funkcji fputs i z ich pomocą wykonaj te same operacje co w punkcie 3.

5. Czym różnią się funkcje fputc(), fputs() oraz fwrite()?

Zadania.

1. Napisz program, który przerabia pliki „*.html” na pliki „*.txt” usuwając z nich tagi html.

2. Stwórz plik „dane_we.txt”, w którym w dwóch kolumnach oddzielonych tabulatorem znajdują się dowolne liczby rzeczywiste. Napisz program, który będzie pobierał dane wejściowe z pliku „dane_we.txt”, a w pliku „dane_wy.txt” zapisywał

w pojedynczej kolumnie ich sumę .

3. Napisz program, który tworzy nowy plik o nazwie imie.txt i zapisuje do niego imię i nazwisko pobrane z klawiatury. Następnie program zmienia nazwę pliku na imie_nazwisko.txt. Po zmianie nazwy pliku program pyta użytkownika czy usunąć stworzony plik. Jeżeli odpowiedź jest twierdząca program usuwa plik i kończy działanie.