Witajcie.
Dalej siedzie w 7 odcinku programowania C++. Postanowiłem zrobić jeszcze raz odczyt programu z pliku. Niestety za każdym razem program pokazuje mi 0. Czasami jednak pokazuje mi wartość liczbową czyli int przekształcony na string. Najgorsze jest to że pobrałem program napisany przez autora kursu Mirosława Zelenta i mimo to dalej wyświetla mi 0, więc podejrzewam że jest to wina albo Codeblocks albo Systemu operacyjnego. Pracuje na Codebloks 16.10 i na windowsie 10. Nie wiem co jest nie tak. Podaje kod źródłowy:
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
string dane1, dane2, dane3;
int nr_dane;
int main()
{
fstream plik;
plik.open("dane.txt",ios::in);
if(plik.good()==false)
{
cout<<"Nie mozna odnalesc pliku";
exit(0);
}
string linia;
int nr_lini=1;
while(getline(plik,linia));
{
switch(nr_lini)
{
case 1: dane1=linia; break;
case 2: dane2=linia; break;
case 3: dane3=linia; break;
case 4: nr_dane=atoi(linia.c_str()); break;
}
nr_lini++;
}
plik.close();
cout<<dane1<<endl;
cout<<dane2<<endl;
cout<<dane3<<endl;
cout<<nr_dane<<endl;
return 0;
}
A tu ponizej jest kod ściągnięty z:
http://miroslawzelent.pl/kurs-c++/pliki-tekstowe-zapis-odczyt-fstream/
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
string imie, nazwisko;
int nr_tel;
int main()
{
string linia;
int nr_linii=1;
fstream plik;
plik.open("wizytowka.txt", ios::in);
if(plik.good()==false) cout<<"Nie mozna otworzyc pliku!";
while (getline(plik, linia))
{
switch (nr_linii)
{
case 1: imie=linia; break;
case 2: nazwisko=linia; break;
case 3: nr_tel=atoi(linia.c_str()); break;
}
nr_linii++;
}
plik.close();
cout<<"imie: "<<imie<<endl;
cout<<"nazwisko: "<<nazwisko<<endl;
cout<<"telefon: "<<nr_tel<<endl;
return 0;
}
Byłbym wdzięczny za nakierowanie. Przynajmniej wiem, że prawdopodobnie problem nie leży w moim programowaniu.