//obsluga plikow TEKSTOWYCH
#include
int main(void)
{
FILE *f, *out; //wskaznik do struktury opisujacej plik
char sbuf[100]; //tablica znakow
//otwieramy plik do zapisu i odczytu - parametr "w+" (niszczy istniejacy plik!)
// "r" tyko do odczytu
// "w" tyko do zapisu (niszczy istniejacy plik!)
// "a" dolaczamy do istiejacego pliku
// "w+" do zapisu i odczytu
// "rb" "wb" "ab" to samo dla plikow binarnych
if ((f = fopen("c:\\temp\\io.txt", "w+"))
== NULL)
{
fprintf(stderr, "Cannot open file.\n");
return 1;
}
//wskaznik f wskazuje struture opisujaca plik
fprintf( f, "123\n" ); //wpisujemy string 123 do pliku
fflush(f); //zrzucamy na dysk bufor
rewind(f); //przewijamy wskaznik polozenia w pliku na poczatek "tasmy"
fscanf( f, "%s", sbuf ); //zczytujemy to co zapisalismy do sbuf (tasma przesowa sie na koniec 123)
printf( "%s\n", sbuf ); //wyswietlamy
rewind(f); //przewijamy wskaznik polozenia w pliku na poczatek "tasmy"
fgets(sbuf, f); //czyta cala linie
printf( "%s\n", sbuf ); //wyswietlamy
fseek(f, -1L, SEEK_CUR ); //cofamy tasme o 1L (long)
//SEEK_CUR od aktualnego polozenia
//SEEK_SET od poczatku pliku
//SEEK_END od konca pliku
fscanf( f, "%s", sbuf );
printf( "%s\n", sbuf );
//otwieramy plik do zapisu "wt" == "w"
if ((out = fopen("c:\\temp\\out.txt", "wt"))
== NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
//przewijamy pierwszy plik
rewind(f);
//przepisujemy pierwszy plik do drugiego bajt po bajcie
while (!feof(f)) //powtaza az funkcja feof wykryje koniec pliku (EOF)
fputc(fgetc(f), out);
//fgetc zwraca bajt z pliku f
//fputc zapisuje ten bajt do pliku out
//zamykamy pliki
fclose(f);
fclose(out);
return 0;
}
//
//pliki binarne nalezy otwierac z opcja "b" np "wb"
//do zapisywania i odczytywania danych binarnych stosje sie funkcje:
// fwrite
// fread
//pozwalaja one zapisywac i odczytywac cale struktury danych.