Witam, mam problem z moim programem. Całość polega na tym, że uzupełniam strukturę danymi, następnie przepisuje całość do pliku tekstowego (to mam gotowe). Później odczytuje ten plik i wypisuje określone dane, w tym przypadku nazwisko i miejsce urodzenia. Problem polega na tym, że moja funkcja działa tylko wtedy kiedy w danej linijce są tylko dwa słowa, dlatego zamiast "Miejsce urodzenia:" muszę wpisać "Urodzony:" a nazwa miasta, może składać się tylko z jednego słowa.
void fun_c (char *nazwapliku)
{
char znak;
string zmienna, dane;
ifstream fin(nazwapliku);
if (!fin)
cout<<"plik nie zostal otwarty"<<endl;
else
{
cout<<"\nc) Nazwiska i miejsca urodzenia wszystkich studentow:\n"<<endl;
while (!fin.eof())
{
fin>>zmienna>>dane;
if (zmienna=="Nazwisko:")
cout<<dane<<endl;
if (zmienna=="Urodzony:")
cout<<dane<<"\n"<<endl;
}
}
fin.close();
fflush(stdin);
}
Zrobiłem to w ten sposób, ponieważ inna funkcja liczy średnią wieku wszystkich studentów, dlatego struktura pliku tekstowego, gdzie każda linijka zawiera po dwa słowa była dla mnie najwygodniejszą opcją:
void fun_d (char *nazwapliku, int n)
{
char znak;
double iloraz, suma;
string zmienna, dane;
ifstream fin(nazwapliku);
if (!fin)
cout<<"plik nie zostal otwarty"<<endl;
else
{
while (!fin.eof())
{
fin>>zmienna>>dane;
if (zmienna=="Wiek:")
suma+=atoi(dane.c_str());
}
}
iloraz=suma/n;
cout<<"d) Srednia wieku wszystkich studentow: "<<iloraz<<endl;
fin.close();
fflush(stdin);
}
Ma ktoś pomysł jak rozwiązać ten problem?