//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.