[ Pobierz całość w formacie PDF ]
.get(ch))18: cout << ch;19: cout << "\n***Koniec zawartosci pliku.***\n";20: }21: fin.close();22:23: cout << "\nOtwieranie " << fileName << " w trybie dopisywania.\n";24:25: ofstream fout(fileName,ios::app);26: if (!fout)27: {28: cout << "Nie mozna otworzyc " << fileName << " do dopisywania.\n";29: return(1);30: }31:32: cout << "\nWpisz tekst dla pliku: ";33: cin.ignore(1,'\n');34: cin.getline(buffer,255);35: fout << buffer << "\n";36: fout.close();37:38: fin.open(fileName); // ponownie przypisujemy istniejacy obiekt fin!39: if (!fin)40: {41: cout << "Nie mozna otworzyc " << fileName << " do odczytu.\n";42: return(1);43: }44: cout << "\nOto zawartosc pliku:\n";45: char ch;46: while (fin.get(ch))47: cout << ch;48: cout << "\n***Koniec zawartosci pliku.***\n";49: fin.close();50: return 0;51: }WynikProsze ponownie wpisac nazwe pliku: test1Biezaca zawartosc pliku:Ta linia jest zapisana bezposrednio do pliku.Ten tekst zostal zapisany do pliku!***Koniec zawartosci pliku.***Otwieranie test1 w trybie dopisywania.Wpisz tekst dla pliku: Wiecej tekstu dla pliku!Oto zawartosc pliku:Ta linia jest zapisana bezposrednio do pliku.Ten tekst zostal zapisany do pliku!Wiecej tekstu dla pliku!***Koniec zawartosci pliku.***AnalizaUżytkownik jest proszony o ponowne wpisanie nazwy pliku.Tym razem w linii 12.jest tworzony obiekt strumienia wejściowego z pliku.Wynik otwierania jest sprawdzany w linii 13.i jeśli plik istnieje, jego zawartość jest wypisywana w liniach od 15.do 19.Zwróć uwagę, że if(fin) jest synonimem if(fin.good()).Następnie zamykany jest plik wejściowy; ten sam plik zostaje otwarty ponownie w linii 25., tym razem w trybie dopisywania.Po tym otwarciu (i wszystkich innych) sprawdzamy, czy plik został otwarty poprawnie.Zwróć uwagę, że if(!fout) jest tym samym, co if(fout.fail()).Użytkownik jest proszony o wpisanie tekstu, który jest dopisywany do pliku.W linii 36.plik zostaje ponownie zamknięty.Na koniec, tak jak w listingu 17.16, plik zostaje ponownie otwarty w trybie do odczytu.Jednak tym razem obiekt fin nie musi być deklarowany ponownie, jest mu po prostu przypisywana ta sama nazwa pliku.W linii 39.ponownie następuje sprawdzenie poprawności otwarcia i gdy wszystko jest w porządku, zawartość pliku zostaje wypisana na ekranie, a sam plik jest ostatecznie zamykany.TAKNIESprawdzaj każde otwarcie pliku, aby mieć pewność że został on poprawnie otwarty.Ponownie wykorzystuj istniejące obiekty ifstream lub[Author ID1: at Thu Nov 8 11:47:00 2001]o[Author ID1: at Thu Nov 8 11:47:00 2001] ofstream.Po wykorzystaniu obiektów ofstream zamykaj jeNie próbuj zamykać lub ponownie przypisywać cin i cout.Pliki binarne a pliki tekstoweNiektóre systemy operacyjne, takie jak DOS, dokonują rozróżnienia pomiędzy plikami tekstowymi a plikami binarnymi.Pliki tekstowe (jak można się domyślać) przechowują wszystko jako tekst, więc duże liczby, takie jak 54 325 są przechowywane jako łańcuchy cyfr (`5', `4', `3', `2', `5').To może być nieefektywne, ale ma tę zaletę, że tekst może zostać odczytany przez proste programy, takie jak DOS-owy program type.Aby dopomóc systemowi plików w odróżnieniu pliku tekstowego od binarnego, C++ udostępnia znacznik ios::binary.W wielu systemach ten znacznik jest ignorowany, gdyż wszystkie dane są przechowywane w postaci binarnej [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • trzylatki.xlx.pl