Funkcje dla plikow tekst cpp


Temat: Funkcje działające na plikach tekstowych.

Proceduralne podejście do operacji wejścia-wyjścia

Operacje wejścia-wyjścia odbywają się za pośrednictwem strumieni. Dostęp do zawartości strumienia
jest realizowany za pomocą funkcji. Strumienie i funkcje są dostępne w programie po podłączeniu biblioteki stdio.h

Najważniejsze standardowe strumienie (są one zawsze otwarte i dostępne w programie):

Przebieg operacji na strumieniu plikowym.

int main (int argc, char* argv[])

{

FILE *strumien;
char *nazwa = „d:\\dane\\tekst.txt”; //dla bieżącego folderu wystarczy sama nazwa pliku

if ((strumien=fopen(nazwa, „wt”))= =NULL) //otwarcie strumienia plikowego

{

puts(„Blad otwarcia strumienia”);

return 1;

}

// przetwarzanie strumienia plikowego za pomocą odpowiednich funkcji

fclose(strumien); // int fclose(FILE *stream) zamkniecie strumienia plikowego

return 0;

}

Otwieranie strumienia.

FILE *fopen (char *sciezka, char *sposob );

Funkcja otwiera plik określony scieżką w trybie dostępu określonym zmienną sposob i zwraca wskaźnik na strumień skojarzony z właśnie otwartym plikiem. Zmienna „sposób” kończy się literą t jeżeli plik jest otwierany w trybie tekstowym lub literą b - jeśli w trybie binarnym.

Znaki poprzedzające literę t albo b mają następujące znaczenie:
r - tryb tylko do odczytu,
w - tryb do zapisu. Istniejący plik o tej samej nazwie utraci swoją dotychczasową zawartość,
a - dopisywanie na końcu pliku jeśli plik istnieje, a jeśli nie - tworzony jest nowy plik,
r+ -tryb modyfikacji zawartości pliku,
w+ -utwórz nowy plik do zapisu i odczytu jednocześnie. Jeśli plik istnieje, to będzie nadpisywany.
a+ -zapis i odczyt na końcu wskazanego pliku albo utworzenie nowego, jeśli jeszcze nie istnieje.

Wybrane funkcje wyjścia do pliku.

int fputs (char *s, FILE *strumien);

Funkcja wysyła łańcuch określony zmienną s do strumienia określonego drugim parametrem wywołania
funkcji. Nie zapisuje w pliku znaku końca łańcucha ani znaku końca wiersza. W przypadku powodzenia
zapisu funkcja zwraca wartość nieujemną, w przeciwnym razie zwraca EOF.

int fputc (int c, FILE *strumien) ;

Funkcja wysyła do strumienia znak określony parametrem c. Wartością funkcji jest wysłany znak,
w przypadku błędu zaś EOF.

int fprintf (FILE *strumien, char *format, …);

Funkcja działa podobnie jak printf, ale zapisuje dane do strumienia.

Wybrane funkcje odczytujące plik.

int fgetc (FILE *strumien);

Funkcja odczytuje jeden znak ze strumienia. W przypadku powodzenia odczytu zwraca właśnie ten znak przekonwertowany do typu int. W przypadku osiągnięcia końca zbioru (czyli EOF) lub błędu odczytu
funkcja zwraca właśnie EOF.

char *fgets(char *s, int n, FILE *strumien);

Funkcja odczytuje znaki ze strumienia i umieszcza je w łańcuchu s. Odczyt jest przerywany po odczytaniu n-1 znaków lub znaku końca wiersza. Funkcja fgets umieszcza na końcu łańcucha s znak końca wiersza oraz znak `\0', oznaczający koniec łańcucha.

Wartością funkcji w przypadku powodzenia jest s, w przeciwnym razie (napotkanie EOF pliku lub błąd)
adres pusty NULL.


int fscanf (FILE *strumien, char *format, adresy_zmiennych_pamietajacych_odczytane_dane);

Funkcja odczytuje dane ze strumienia jeżeli odpowiadają one wzorcowi zawartemu w zmiennej format.

Zwraca liczbę prawidłowo dopasowanych danych albo EOF gdy osiągła koniec pliku. Wzorzec formułuje się tak samo jak w funkcji scanf.

Funkcje sterujące wskaźnikiem bieżącej pozycji w strumieniu .

Funkcje z tej kategorii przesuwają wskaźnik bieżącej pozycji w strumieniu lub informują o jego położeniu. Przykładowe funkcje: fseek, fsetpos, fgetpos, ftell.

int fseek (FILE *strm, 0, SEEK_SET);

Funkcja przesuwa wskaźnik bieżącej pozycji na początek pliku. W przypadku niepowodzenia operacji zwraca zero. Drugim parametrem jest liczba typu long określająca przesunięcie względem SEEK_SET.

int fseek(FILE *strm, 0, SEEK_END);
Funkcja przesuwa wskaźnik bieżącej pozycji na koniec pliku. W przypadku niepowodzenia operacji zwraca zero.

long ftell(FILE *strm);
Funkcja zwraca wartość typu long int, będącą bieżącym położeniem wskaźnika pozycji liczonym od początku pliku.

verte

int fsetpos(FILE *strm, long *zmienna);

Ustawia wskaźnik bieżącej pozycji w pliku w położeniu określonym parametrem zmienna, liczonym od początku pliku.

int fgetpos(FILE *strm, long *zmienna);

Odczytuje położenie wskaźnika bieżącej pozycji w pliku, liczone od początku pliku, i umieszcza je
w parametrze typu wskaźnik na long.

Obie powyższe funkcje zwracają wartość zero w przypadku niepowodzenia operacji.

Zadanie

Dany plik tekstowy zawierający kilkanaście wierszy z liczbami oddzielonymi spacja. W każdym wierszu jest tyle samo liczb ale programista nie może sobie założyć ze zawsze jest ich 10. Napisz program który wczyta wszystkie liczby do tablicy dwuwymiarowej a nastepnie wyświetli je na ekranie. Wspomniana tablica powinna być tablica o rozmiarze przydzielanym dynamicznie.

Za 1 razem trzeba wczytac tylko pierwszy wiersz pliku aby stwierdzić ile ma liczb

// za pomoca funkcji Fgets i strtok

Dowiemy się ile liczb znajduje się w wierszach. Pozniej wywołać funkcje fgets w petli i dzieki temu dowiemy się ile wierszy zawiera nasz plik petla skonczy się wtedy gdy fgets zwroci null lub endoffile

Cos

Utwórz tablice dynamiczna bo znamy jej rozmiary

Wywolujemy w petli funkcje skanf tak dlugo jak zwroci null Lub eof

Fskanf będzie ladowalo liczby z pliku do naszej tablicy dwuwymiarowej z tym ze trzeba pamiętać w którym momencie musimy zmienic wiersz w naszej tablicy

Po wczytaniu zawartość tego pliku zamykamy plik funkcja fclose



Wyszukiwarka

Podobne podstrony:
Konspekt gimnastyki funkcjonalnej dla dzieci
Uprawnienia dla plików i folderów
ANALIZA FUNKCJONALNA DLA CE, Inne
Diagnostyka funkcjonalna dla potrzeb fizjoterapeuty(1), studia fizjoterapia, fizjoterapia
analiza funkcjonalna dla Centrum Odnowy Biologiczne (2 str)j, Analiza i inne
Droga Krzyżowa (dla dzieci) - tekst biblijny - narracja, Łk 22:1-71
piosenki dla dzieci-tekst, Pedagogika
rymowanki dla dzieci-tekst, Dika, Dla dzieci edukacyjne
SPIS TREŚCI - DLA PLIKÓW Z PRACAMI, 469 opracowań - pomoc na studiach Humanistycznych
Wyłączanie monitu dla plików EXE pobranych z Internetu
Funkcje dla Zaawansowanych
Dla mamy tekst piosenki 2
Edward Stachura Piosenka dla zapowietrzonego[tekst piosenki]
KOD RAMKA TŁO CZARNE GLITEROWE GIF DŁONIE Z ŻAREM DLA CIEBIE TEKST I OZDOBNIKI GIF
KOD RAMKA TŁO WIOSENNE JASNE GIF OBRAZ HERBATKA DLA DWOJGA I TEKST I OBRAZ PNG(1)
RODZAJE PROTEZ FUNKCJONALNYCH DLA KOŃCZYN GÓRNYCH
POEMAT DLA DOROSŁYCH tekst
Jak ustawić uprawnienia(chmod) dla plików lub folderów
Tekst piosenki mała smutna królewna, Teksty piosenek i wierszy dla dzieci

więcej podobnych podstron