Mam wprowadzić do pliku tekstowego imię,nazwisko,potem je zapisać w nim i na koniec wyświetlić. Tylko mimo,że w pliku jest już kilka wpisanych danych nie wyświetlają się,wyświetla tylko te ,które wpisuję podczas wykonywania programu. Mi wydaję się,że wszystko jest dobrze i nie widzę błędów. Przecież pętla while ma się wykonywać aż do skończenia się linii w dokumencie. Może ktoś coś zauważy?
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
#include<Windows.h>
using namespace std;
class Dane
{
public:
string imie, nazwisko;
void czytaj_dane_z_klawiatury()
{
cout << "Podaj imie:" ; cin >> imie;
cout << "Podaj nazwisko:"; cin >> nazwisko;
}
void zapisz_dane_do_pliku ()
{
cout << "Zapizuje dane w pliku" << endl;
ofstream plik_zapis;
plik_zapis.open("plik_tekstowy.txt",ios::out|ios::app); //otwiera ;
plik_zapis << imie << endl;
plik_zapis << nazwisko << endl;
plik_zapis.close();
}
void czytaj_dane_z_pliku()
{
cout << "Odczyt danych z pliku." << endl;
ifstream plik_odczyt;
plik_odczyt.open(" plik_tekstowy",ios::in); // otwieramy plik, ktory juz istnieje
string linia;
int nr_linii = 1;
while (getline(plik_odczyt, linia))
{
switch (nr_linii)
{
case 1:imie = linia; break;
case 2:nazwisko = linia; break;
}
nr_linii++;
}
plik_odczyt.close(); // zamykamy plik
cout << imie << " " << nazwisko << " ";
}
Dane();
};
Dane::Dane()
{
};
int main()
{
Dane dane = Dane();
dane.czytaj_dane_z_klawiatury();
dane.zapisz_dane_do_pliku();
dane.czytaj_dane_z_pliku();
system("Pause");
return 0;
}