Otóż próbuje napisać część program która wyciąga linię z pliku, i dzieli ją odpowiednio na int/string/string/double/double/int.
Niestety program się wysypuje (przestaje odpowiadać), nie wczytuje ostatniej cyfry, oraz przy case 3 i wyrazie na 4 litery dopisuje jakieś 2-elementowe bzdury:
void wczytaj_dane(char nazwa[20])
{ string s;
char t[8];
string t1;
int k,p;
fstream plik;
plik.open(nazwa, fstream::in);
if(plik.is_open())
{
for(int i=0;i<il_pociagow;i++){
getline(plik,s);
p=0;
k=0;
for (int l = 0; l<s.size() ;l++){
if (s[l]!=';' && s[l]!='\n'){
t[k]=s[l];
k++;}
else{t[k]='\0';
switch(p){
case 0:
tablica_danych[i].ID = atoi(t);
p++;
k=0;
cout<<tablica_danych[i].ID<<endl;
break;
case 1:
k=0;
while(t[k]!=NULL){
tablica_danych[i].TRASA[k]=t[k];
k++;
}
cout<<tablica_danych[i].TRASA<<endl;
p++;
k=0;
break;
case 2:
k=0;
while(t[k]!=NULL){
tablica_danych[i].TYP[k]=t[k];
k++;
}
cout<<tablica_danych[i].TYP<<endl;
p++;
k=0;
break;
case 3:
tablica_danych[i].PRZYJAZD=atof(t);
cout<<tablica_danych[i].PRZYJAZD<<endl;
p++;
k=0;
break;
case 4:
tablica_danych[i].POSTOJ=atof(t);
cout<<tablica_danych[i].POSTOJ<<endl;
p++;
k=0;
break;
case 5:
tablica_danych[i].PERON = atoi(t);
p++;
k=0;
cout<<tablica_danych[i].ID<<endl;
break;
}
}
}
}
}
}
Co moze być źle?