11
Metodyka i techniki programowania
Operacje na plikach
Mgr inż. Jacek Wszołek
Ćwiczenie 1. Odczyt pliku
1. Zaimplementuj poniższy kod, pozwalający odczytać zawartość pliku „r.txt”:
int main()
{
FILE *stream;
char list[128];
int numread;
//proba otwarcia pliku
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 pliku „r.txt”.
4. Zapoznaj się z działaniem funkcji „fgetc” i wypisz pierwsze trzy i ostatnie trzy znaki pliku
„r.txt”.
Ć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;
/* Open file in text mode: */
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. 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ę .
Zadanie.
1. Napisz program, który przerabia pliki „*.html” na pliki „*.txt”