Witajcie, mam problem z konwersją. Mam plik tekstowy z którego pobieram dane, co trzecia linijka tekstu zawiera liczbę. Chciałem użyć funkcji static_cast do konwersji ze stringa na inta ale to nie działa.
int main()
{
string imie[4],nazwisko[4];
int nr_tel[4];
fstream plik;
plik.open("wizytowka_z_wczesniejszymi_danymi.txt",ios::in); //ios::in oznacza ze bedziemy odczytywac dane z pliku wizyt...
if(plik.good()==false)
{
cout<<"plik nie istnieje"<<endl;
exit(0);
}
string linia;
for(int a=0;a<3;a++)
{
for(int nr=1;getline(plik,linia);nr++)
{
switch(nr%3)
{
case 1: imie[a]=linia; break;
case 2: nazwisko[a]=linia; break;
case 0: nr_tel[a]=static_cast<int>(linia); break; //zamiana stringa na inta
}
if(nr%3==0) break;
}
}
plik.close();
//+ plik.clear(); =====> jesli zapisujemy w kilku plikach
for(int i=0;i<3;i++)
{
cout<<imie[i]<<endl;
cout<<nazwisko[i]<<endl;
cout<<nr_tel[i]<<endl;
}
return 0;
}
Wiem ze jeżeli zastąpimy static_cast na na funkcję atoi() to program zadziała. Jednak zastanawia mnie czemu moje rozwiązanie jest błędne ?