background image

Funkcja typu int, zwraca kod błędu wartości 0­3: 

wartość zwrócona 0:  poprawne wykonanie zadania 

wartość zwrócona 1:  nie można utworzyć pliku tymczasowego 

wartość zwrócona 2:  nie można otworzyć podanego pliku w trybie do odczytu 

wartość zwrócona 3:  nie można otworzyć podanego pliku w trybie do zapisu 

(Chyba, że w zadaniu określono inaczej) 

 

1. Definicja funkcji ­ int C5 (char tablica [ ]) 
2. Deklarujemy wskaźniki do plików (FILE *f, *w ­ jeden do odczytu, drugi ­ tymczasowy ­ 

do zapisu) 

3. Deklarujemy zmienną typu int do pobierania znaku oraz drugą, wyzerowaną, jako licznik 

(jeżeli jest potrzebny w zadaniu, do pętli) 

4. Stały fragment kodu ­ zwrócenie wartości dwóch pierwszych błędów: 

 

if ((w = tmpfile ()) == NULL) 
    return 1; 

 

if ((f = fopen (nazwa, "r")) == NULL) 
     return 2; 

 

5. Przekształcenie warunków funkcji: 

○ getchar () zmieniamy na getc(f) 
○ putchar (c) zmieniamy na fwrite (&c, 1, 1, w); 

6. Kolejny stały fragment kodu ­ kontrola trzeciego błędu i zamknięcie  

if ((f = fopen (nazwa, "w")) == NULL) 

 

return 3; 

  rewind (w); 

  while (!feof (w)) 

if (fread (&c, 1, 1, w)) 

 

putc (c, f); 

  fclose (f); 

  return 0; 

Należy pamiętać o nazwach zmiennych wybieranych z dozwolonych!