Szukaj

1944

Reklama

Chroń swoje dziecko

w Internecie
Reklama

za darmo ...

Kalendarz

Reklama

Jak odbierasz ...

Wygląd portalu
 

"Musicie od siebie wymagać, nawet jeśli inni by od Was nie wymagali..." JP2 [100%]

Reklama
Operacje na plikach - odczyt z pliku PDF Drukuj Email
Ocena użytkowników: / 4
SłabyŚwietny 
Instrukcje i materiały do ćwiczeń - Podstawy programowania w C++
Wpisany przez Administrator   

Z tego artykułu dowiesz się:

  1. Jak odczytywać dane z pliku;
  2. Jak zabezpieczyć program przed błędem nieistniejącego pliku.

 


Z poprzedniego artykułu dowiedziałeś się jak zapisywać dane do pliku.

 

Przypomnijmy, że polegało to na:

  1. Otworzeniu pliku w specjalnym trybie w+ (jeżeli takiego pliku nie było, to był on automatycznie tworzony);
  2. Zapisaniu strumienia danych funkcją fprintf() do pliku;
  3. Zamknięciu pliku;


Odczyt przebiega bardzo podobnie i polega na:

  1. Otworzeniu pliku e specjalnym trybie;
  2. Stworzeniu specjalnego bufora, czyli tablicy znaków, do których program zapisuje dane z pliku;
  3. Zapisanie danych z pliku do bufora
  4. Ewentualne wyświetlenie zawartości bufora bądź modyfikacja danych (np. w celu ponownego zapisu danych do pliku)
  5. Zamknięcie pliku; 


Jak widać odczyt jest nieco bardziej skomplikowany. Dzieje się tak dlatego, że używamy tzw. bufora zapamiętującego odczytane dane. Danymi zawartymi w buforze można za to dowolnie manipulować.

Napiszmy prosty program odczytujący dane z pliku:

Ćwiczenie 1:

Napisz program, który odczytuje zawartość pliku tekstowego a następnie wyświetla jego zawartość w konsoli. 

 

Kod programu:

 

 

Zawartość pliku Nazwisko.txt na dysku C:

 

 

Efekt wywołania programu:

 

 

Możesz użyć innej nazwy i ścieżki pliku (u mnie jest "C:\Nazwisko.txt" zapisane w programie jako "C:\\Nazwisko.txt").

Program ma jedną słabość:

 

 

Taki komunikat pojawia się, jeśli określony plik nie zostanie odnaleziony.

 Możemy z tej sytuacji wybrnąć na kilka sposobów:

Po pierwsze można otwierać plik z parametrem "w+" zamiast "r" - powoduje to utworzenie pliku z możliwością zapisu i odczytu, ponadto automatycznie tworzy plik na końcu podanej ścieżki. Zawsze więc plik będzie istniał w trakcie działania programu.

 

Ćwiczenie 2:

Napisz program, który odczytuje dane z pliku i wyświetla je w konsoli. Program jest odporny na błąd nieistniejącego pliku.

 

Zapis będzie wtedy wyglądał tak:

A wywołanie programu podczas, gdy wskazany plik nie istnieje będzie wyglądało tak:

 

 

Rozwiązanie to ma jednak inna wadę: plik otwierany jest w trybie do odczytu i zapisu. Niektóre dane są zbyt ważne, aby plik z nimi otwierać w trybie do zapisu gdyż wtedy mogłyby ulec skasowaniu. (np. dane w banku, urzędzie itp.). Czasem trzeba otworzyć plik tylko do odczytu i w inny sposób zabezpieczyć się przed błędem nieistniejącego pliku.

 

Ćwiczenie 3:

Napisz program, który otwiera plik w trybie tylko do odczytu i wyświetla jego zawartość w oknie konsoli. Program jest odporny na błąd nieistniejącego pliku.

 

 

kod programu:

 

 

 

Efekt wywołania programu dla nieistniejącego pliku: