[ Pobierz całość w formacie PDF ]
.OPERACJE WEJŒCIA - WYJŒCIAOperacje wejœcia / wyjœcia ® odczyt i zapis danych do ró¿nychzewnêtrznych urz¹dzeñ lub noœników pamiêciowych komputera:np.klawiatury, ekranu monitora, dyskietki, czytnika taœmy, drukarki, itp.Jêzyk C/C++ nie ma wbudowanych ¿adnych instrukcji umo¿liwiaj¹cych wykonywanieoperacji wejœcia-wyjœcia ! S³u¿¹ do tego funkcje biblioteczne.Operacje na plikach (niskiego poziomu) ® < IO.H >int open ( char *nazwa_pliku, int tryb_dostepu )int close ( int handle )int write ( int handle, void *adres_bufora, unsigned ilosc_bajtow ) bin.int read ( int handle, void *adres_bufora, unsigned ilosc_bajtow ) bin.int eof ( int handle )long tell ( int handle )long filelength ( int handle )long lseek ( int handle, long przesuniecie, int wzglêdem_czego )Proceduralnie za pomoc¹ strumieniu ® < STDIO.H >FILE * fopen ( char *nazwa_pliku, char *rodzaj_operacji )int fclose ( FILE *strumien )int fcloseall (void )int fputc ( int znak, FILE *strumien ) txtint fputs ( char *tekst, FILE *strumien ) txtint fprintf ( FILE *strumien, char *format,.) txtint fwrite ( void* adres, size_t rozm_bl, size_t il_blokow, FILE* strumien) binint fgetc ( FILE *strumien ) txtchar* fgets ( char *tekst, int dlugosc, FILE *strumien ) txtint fscanf ( FILE *strumien, char *format,.) txtint fread ( void* adres, size_t rozm_bl, size_t il_blokow, FILE* strumien) binint feof ( FILE *strumien )int fseek ( FILE *strumien, long przesuniecie, int wzgledem)long ftell ( FILE *strumien )int fflush ( FILE *strumien )int flushall ( void )OBIEKTOWA REALIZACJA OPERACJI WEJŒCIA - WYJŒCIAW jêzyku C++ mo¿liwa jest obiektowa realizacja operacji we/wy.Podejœcie obiektowe zak³ada, ¿e ró¿ne „urz¹dzenia” bêd¹ reprezentowane wprogramie za pomoc¹ ró¿nych obiektów modeluj¹cych strumienie danych wp³ywaj¹celub wyp³ywaj¹ce z tych „urz¹dzeñ”.W obiektowych bibliotekach we/wy zdefiniowano ró¿ne klasy obiektów -strumieni(w zale¿noœci od specyficznych cech danego „urz¹dzenia”).Cechy strumieniamo¿na odczytaæ z poszczególne liter nazw klas :i.- (in) - strumienie wejœciowe (np.istream, ifstream, istrstream),o.- (out) - strumienie wyjœciowe (np.ostream, ofstream, ostrstream),f.- (file) - strumienie plikowe (np.ifstream, ofstream, fstream),str.- (string) - strumienie pamiêciowe (np.istrstream, strstream),Aby unikn¹æ wielokrotnego definiowania tych samych operacji(np. dla ka¿dego strumienia musi byæ funkcja informuj¹ca czy wyst¹pi³ b³¹d)klasy strumieni tworz¹ wielopoziomow¹ hierarchiê:Podstawow¹ klas¹ jest klasa iosModeluje ona w³aœciwoœci (tzn.funkcje, zmienne i sta³e) wspólne dla wszystkichstrumieni.Definicja klasy ios jest zawarta w pliku.Najwa¿niejsze metody tej klasy:int ios::bad( ) - zwraca wartoœæ ró¿n¹ od zera, je¿eli wyst¹pi³ b³¹d,int ios::good( ) - zwraca wartoœæ ró¿n¹ od zera, je¿eli nie by³o b³êdu,int ios::eof( ) - zwraca wartoœæ ró¿n¹ od zera, gdy koniec danych,int ios::width( int ) - steruje szerokoœci¹ pola wyjœciowego (np.iloœæ cyfr)int ios::precision( int ) - steruje iloœci¹ cyfr po przecinkuSta³e trybów otwarcia strumienia:ios::in - otwórz strumieñ do odczytu,ios::out - otwórz strumieñ do zapisu,ios::app - otwórz strumieñ w trybie dopisywania na koñcu,ios::trunc - wyzeruj rozmiar pliku, je¿eli istnieje,ios::binary - otwórz jako strum.binarny (domyœlnie ® strum.tekstowy),Sta³e okreœlaj¹ce pozycjê odniesienia (podczas przesuwania pozycji):ios::beg - wzglêdem pocz¹tku pliku,ios::cur - wzglêdem pozycji aktualnej,ios::end - wzglêdem koñca pliku,PodstawowE operacje odczytu ® klasa istreamModeluje ona metody wspólne dla wszystkich strumieni wejœciowych z którychodczytujemy dane (tekstowe lub binarne).Definicja klasy istream jest zawartarównie¿ w pliku.Najwa¿niejsze metody tej klasy:get( char& znak) - wczytuje jeden znak ze strumienia,getline(char* bufor, int max_dlug, char znak_konca) - wczytuje liniê znaków,read( char* bufor, int iloœæ_bajtów ) - wczytuje ci¹g bajtów do bufora,>> - operator pobrania/odczytu danych ze strumienia tekstowego.Podstawowe operacje ZAPISU ® klasa ostreamModeluje ona metody wspólne dla wszystkich strumieni wyjœciowych do którychzapisujemy dane (tekstowe lub binarne).Definicja klasy ostream jest zawartarównie¿ w pliku.Najwa¿niejsze metody tej klasy:put( char& znak) - wysy³a jeden znak do strumienia,write(char* bufor, int iloœæ_bajtów) - wysy³a ci¹g bajtów z bufora do strum.> znak; // cin.get(znak);cin >> x;cin >> y;cin >> z;cin >> tekst; //cin.getline(tekst,19)cout
[ Pobierz całość w formacie PDF ]