Ćwiczenie 2 Zadania do wykonania Operacje na plikach

Transkrypt

Ćwiczenie 2 Zadania do wykonania Operacje na plikach
Metody i Języki Programowania
ćwiczenie 2
Ćwiczenie 2
Celem ćwiczenia jest poznanie funkcji dostępu do plików.
Zadania do wykonania
1. Napisz program, który wczyta z klawiatury tekst i zapisze go w pliku tekstowym.
2. Napisz program, który przekopiuje zawartość jednego pliku tekstowego do drugiego,
znak po znaku. W przypadku napotkania litery naleŜy ją zdublować, w przypadku liczby
potroić, inne znaki typu spacja, myślnik, przecinek przekopiować pojedynczo. Nazwy
plików mają być przekazane jako argumenty wywołania programu.
3. Napisz program, który umoŜliwi wczytanie plików Iris.tea, bupa.txt, pima.txt oraz
policzy i wyświetli średnie wartości dla wszystkich kolumn w pliku. Ilość kolumn i
wierszy jest zmienna i podawana jest w pierwszym wierszu pliku.
Operacje na plikach
fopen
FILE* fopen(const char* nazwa, const char* tryb);
Otwarcie pliku ”nazwa”
tryb :
r
: odczyt istniejącego pliku
w : utworzenie pliku do zapisu
a
: zapis na końcu istniejącego pliku
r+ : zapis lub odczyt istniejącego pliku
w+ : utworzenie pliku do zapisu i odczytu
a+ : zapis lub odczyt na końcu istniejącego pliku
dodatkowo
t
: plik tekstowy
b
: plik binarny
fclose
int fclose (FILE
Zamknięcie pliku.
*plik ) ;
fcloseall
int fcloseall ( void ) ;
Zamknięcie wszystkich otwartych plików.
fgetc
int fgetc ( FILE *plik );
Odczyt kolejnego znaku. Zwraca liczbę całkowitaą 000 | kod_znaku
fputc
int fputc ( int znak, FILE *plik ) ;
Zapis kolejnego znaku (liczba całkowita : 000 | kod). Zwraca znak lub EOF
fgets
char* fgets ( char *napis, int liczba, FILE *plik) ;
Odczytuje ciąg znaków, maksymalnie liczba-1 znaków. Zwraca napis lub NULL.
Metody i Języki Programowania
ćwiczenie 2
fputs
int fputs ( char *napis, FILE *plik );
Zapis ciągu znaków. Zwraca ostatni zapisany znak lub EOF.
fscanf
int fscanf(FILE *plik, const char *format, wskaźnik,...);
Odczyt ciągów znaków i konwersji na wartości binarne (podobnie jak scanf)
Zwraca liczbę wczytanych ciągów znaków lub EOF.
fprintf
int fprintf ( FILE *plik, const char *format, wyraŜenie, ...);
Zapis ciągów znaków zadanych za pomocą wyraŜeń (podobnie jak printf)
Zwraca liczbę zapisanych bajtów lub EOF.
fread
int fread (wskaźnik, int rozmiar, int liczba,
Odczytanie zadanej liczby struktur danych, kaŜda o długości rozmiar
Zwraca liczbę odczytanych struktur lub 0.
fwrite
int fwrite ( wskaźnik, int rozmiar, int liczba,
Zapis wskazanej liczby struktur danych o długości rozmiar
Zwraca liczbę zapisanych struktur lub 0.
FILE *plik);
FILE *plik );
feof
int feof ( FILE *plik );
Odczyt stanu znacznika końca pliku. Zwraca !0 gdy napotkano EOF, przeciwnie 0.
fseek
int fseek (FILE *plik, long pozycja,
Ustalenie aktualnej pozycji pliku
cel :
SEEK_SET - początek pliku,
SEEK_CUR - aktualna pozycja pliku
SEEK_END - koniec pliku
Zwraca 0 gdy poprawnie, !0 gdy błąd
fseek(opis, 0L, SEEK_END);
rewind
void rewind ( FILE *plik );
Ustalenie aktualnej pozycji na początku pliku.
int cel);

Podobne dokumenty