Witam, otóż tworzę sobie bazę powiedzmy "salonu samochodowego" z jakimiś podstawowymi nazwami itp. nie jestem weteranem c++ a wręcz jego żółtodziobem, ale kto nim na początku nie był. Przechodząc do mojego pytania/problemu, chodzi mi o to by if{} przez getline w funkcji pomoc() zliczał mi ile razy wystąpił "#" a następnie chce przekazać to do funkcji szukajModel() by for odtworzył się 'j' razy by przeszukać plik i nie "wciągać" pustego pola. Poniżej wklejam samą funkcje pomoc, szukajModel i main a następnie sam program. Dodam jeszcze, że po włączeniu programu od nowa wszystko działa poprawnie.
Edit: Poprawiłem kod.
Chodzi mi o to, by funkcja pomoc() obliczała int j a następnie przekazywała ten właśnie int do funkcji szukajModel. Chciałbym by działało to podczas działania programu, a działa tylko po ponownym uruchomieniu całego kodu w CodeBlocks, dlatego też dodałem w menu case 7: najpierw funkcje pomoc() by obliczyło int j a następnie by funkcja szukajModel "wzięła" sobie tego inta i go użyła, ale niestety jakos to nie wychodzi. Będę się bawił dalej, zobaczymy jak to wyjdzie :D.
Pozdrawiam serdecznie.
int szukajModel(salon samochod[100], int j)
{
int i;
string odp;
cout<<"Podaj model samochodu do wyszukania: ";
cin>>odp;
for(i=0;i<j;i++)
{
if(samochod[i].model == odp)
{
cout<<samochod[i].marka<<endl;
cout<<samochod[i].model<<endl;
cout<<samochod[i].kolor<<endl;
cout<<samochod[i].rok_produkcji<<endl;
cout<<samochod[i].waga<<endl<<endl;
}
}
}
float pomoc()
{
int j = 1;
int i = 0;
fstream plik;
string tekst;
string symbol;
plik.open("kodzik.txt", ios::in);
for(i=0;i<j;i++)
{
getline(plik, symbol);
if("#" == symbol)
{
getline(plik, tekst);
getline(plik, tekst);
getline(plik, tekst);
getline(plik, tekst);
getline(plik, tekst);
j++;
}
}
plik.close();
return j;
}
int i;
string odp;
cout<<"Podaj model samochodu do wyszukania: ";
cin>>odp;
for(i=0;i<j;i++)
{
if(samochod[i].model == odp)
{
cout<<samochod[i].marka<<endl;
cout<<samochod[i].model<<endl;
cout<<samochod[i].kolor<<endl;
cout<<samochod[i].rok_produkcji<<endl;
cout<<samochod[i].waga<<endl<<endl;
}
}
}
int main()
{
int wybor, j;
wpisTab(samochod);
pomoc();
j = pomoc();
menu:
cout<<endl<<"1.Dodaj samochod do bazy."
<<endl<<"2.Wyswietl cala baze."
<<endl<<"3.Szukaj marki."
<<endl<<"4.Zapisz."
<<endl<<"5.Zamknij."<<endl;
cin>>wybor;
switch(wybor){
case 1:ilosc=wypelnij(f);zapisz(f,ilosc);wpisTab(samochod);break;
case 2:wyswietl();break;
case 3:szukaj2(); break;
case 4:zapisz(f,ilosc); break;
case 5:goto koniec;
case 6:wpisTab(samochod);
case 7:pomoc();szukajModel(samochod, j);
}goto menu;
koniec:
return 0;}