Diky moc za radu, udelal jsem to nakonec takhle, mozna je to trochu prasarna dole s tou main funkci, ale funguje to tak jak ma. Nevim jestli tam jsou osetreny vsechny pripady :-)
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <list>
#include <algorithm>
#include <iterator>
#include <cctype>
using namespace std;
void uvod(void)
{
cout << "|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n";
cout << "||||||||||||| |||||||||||||\n";
cout << "||||||||||||| Program pro lokalizaci mistnosti |||||||||||||\n";
cout << "||||||||||||| |||||||||||||\n";
cout << "|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n";
}
struct Lokace//...................................................................................................................vytvoreni struktury pro udaje o mistnostech
{
string Mistnost;
string Typ;
string Budova;
};
string hledani(void)//............................................................................................................funkce pro nacteni nazvu mistnosti od uzivatele
{
cout << "\nZadejte nazev hledane mistnosti: ";
string vstup;
getline(cin, vstup);
return vstup;
}
string uppercase(string vstup)//..................................................................................................funkce pro prevedeni celeho stringu do uppercase
{
string vystup;
transform(vstup.begin(),vstup.end(), std::back_inserter(vystup),::toupper);
return vystup;
}
string mezery(string vstup)//.....................................................................................................funkce pro odstraneni mezery ze stringu
{
string vystup = vstup;
for(int i=0; i<vystup.length(); i++)
if(vystup[i] == ' ') vystup.erase(i,1);
return vystup;
}
string noveHledani(void)//........................................................................................................funkce pro vyhledani nove mistnosti
{
cout << "\nChcete zadat novou mistnost? (Ano/Ne): ";
string vstup;
getline(cin, vstup);
vstup = mezery(vstup);
vstup = uppercase(vstup);
if (vstup == "ANO")
{
return "Ano";
}
if (vstup == "NE")
{
exit(0);
}
else
{
cout << "Chyba v zadavani!\n";
noveHledani();
}
}
void hlavni(void)
{
string vstup = hledani();
vstup = mezery(vstup);
vstup = uppercase(vstup);
string vysledek = vstup;
//cout << "\nProbehlo zadani uzivatelem: " << vysledek << endl;//.............................................................kontrolni vystup hodnoty zadane uzivatelem
//string vysledek2 = mezery(vysledek);//......................................................................................volani funkce pro odstraneni mezery
//cout << "\nProbehlo odstraneni mezer: " << vysledek2 << endl;//.............................................................kontrolni vystup zadane hodnoty bez mezer
//string vysledek3 = uppercase(vysledek2);//..................................................................................volani funkce pro prevod stringu na velka pismena
//cout << "\nProbehlo prevedeni do uppercase: " << vysledek3 << endl;//.......................................................kontrolni vystup zadane hodnoty bez mezer a v uppercase
//cout << vysledek3 << endl;//................................................................................................kontrolni vystup pro porovnani
ifstream file ("file.csv");//.................................................................................................nacteni zdrojoveho souboru s daty o mistnostech
while (file.good())
{
Lokace lokace;
getline(file, lokace.Mistnost, ',');//....................................................................................nacteni nazvu mostnosti
getline(file, lokace.Typ, ',');//.........................................................................................nacteni nazvu typu mistnosti
getline(file, lokace.Budova);//...........................................................................................nacteni nazvu budovy
if (lokace.Mistnost == vstup)//.........................................................................................porovnani nacteneho stringu se zadanym nazvem mistnosti
{
cout << "\n" << lokace.Typ << " " << lokace.Mistnost << " se nachazi v budove " << lokace.Budova << "." << endl;//....vypis nazvu mistnosti spolu s jejim typem a umistenim
if (noveHledani() == "Ano");
{
hlavni();
}
}
}
cout << "\nMistnost \"" << vstup << "\" nebyla nalezena!\n";
if (noveHledani() == "Ano");
{
hlavni();
}
}
int main()
{
uvod();
hlavni();
}