#17 ondrej39
Tak to je mazec to bych dohromady nedal ani kdybych u toho sedel mesic, fakt diky moc, asi se mám ještě hooodně co učit :D určitě to k něčemu bude, teď mi to jen hází nějakou chybu u funkce stoi() , že není deklarována v " this cope " přitom potřebné knihovny tam naimportované mám :/ a to až po tom, co jsem všechny std:: nahradil syntaxí "using namespace std", pře tím to byla chyba 'stoi' is not a member of 'std' , ale s tím si snad už nějak poradím :)
Příspěvky odeslané z IP adresy 217.197.149.–
Ondra
Ondra
Našel jsem si nějaké dvě fukce, které by měly vyřešit načítání a výpis souborů, jen mi to hazí chybu u funkce "strcpy()" :
cannot convert 'std::string {aka std::basic_string<char>}' to 'char*' for argument '1' to 'char* strcpy(char*, const char*)'
Nevíte někdo co je tam špatně? :(
Film *nacteniFilmu(Film *poleFilmu,int &velikostPole,string &filtr)
{
string kopieRretezec;
string nazevSouboru = "filmy";
//string cesta="../../vstupnidata/";
string pripona=".csv";
int cisloZaznamu=0;
system("cls");
cout<<"Zadej nazev souboru bez pripony, ktery chces nacist: ";
//cin>>nazevSouboru;
nazevSouboru = nazevSouboru+pripona;
ifstream vstup(nazevSouboru.c_str());
if(!vstup.is_open())
{
cout<<"Chyba pri otevreni souboru."<<endl;
poleFilmu=NULL;
return poleFilmu;
}
if(poleFilmu!=NULL)
{
free(poleFilmu);
poleFilmu=NULL;
velikostPole=0;
filtr="";
}
while(!vstup.eof())
{
getline(vstup,kopieRretezec,';');
if(kopieRretezec.length()==0)
break;
if(velikostPole==0)
{
poleFilmu=(Film*)malloc(sizeof(Film)*(++velikostPole));
}
else
{
poleFilmu=(Film*)realloc(poleFilmu,sizeof(Film)*(++velikostPole));
}
strcpy(poleFilmu[cisloZaznamu].nazev_,kopieRretezec.c_str());
getline(vstup,kopieRretezec,';');
strcpy(poleFilmu[cisloZaznamu].zanr_,kopieRretezec.c_str());
getline(vstup,kopieRretezec,';');
strcpy(poleFilmu[cisloZaznamu].puvod_,kopieRretezec.c_str());
getline(vstup,kopieRretezec,';');
strcpy(poleFilmu[cisloZaznamu].zanr_,kopieRretezec.c_str());
getline(vstup,kopieRretezec,';');
poleFilmu[cisloZaznamu].id_=stoi(kopieRretezec);
getline(vstup,kopieRretezec,'\n');
poleFilmu[cisloZaznamu].trvani_=stoi(kopieRretezec);
getline(vstup,kopieRretezec,'\n');
poleFilmu[cisloZaznamu].rok_=stoi(kopieRretezec);
kopieRretezec="";
cisloZaznamu++;
}
if(velikostPole==0)
{
cout<<"Soubor je prazdny."<<endl;
vstup.close();
return poleFilmu;
}
cout<<"Nacteni ze souboru probehlo uspesne."<<endl;
vstup.close();
return poleFilmu;
}
void tisk(Film *poleFilmu,int velikostPole)
{
system("cls");
if(poleFilmu==NULL)
{
cout<<"Seznam je prazdny."<<endl;
}
else
{
cout<<" "<<setw(11)<<left<<"Prijmeni"<<setw(10)<<"Jmeno"<<setw(23)<<"Nazev knihy"<<setw(10)<<"Zanr"<<setw(12)<<"Rok vydani"<<setw(5)<<"Pocet stran"<<endl<<endl;
for(int i=0;i<velikostPole;i++)
cout<<setw(3)<<i+1<<setw(10)<<left<<poleFilmu[i].id_<<setw(10)<<poleFilmu[i].nazev_<<setw(23)<<poleFilmu[i].rok_<<setw(13)<<poleFilmu[i].zanr_<<setw(13)<<poleFilmu[i].puvod_<<setw(5)<<poleFilmu[i].trvani_<<endl;
}
}
Ondra
#12 ondrej39
Tyo díky moc :) vypadá to dobře :) Tak ono je mu asi celkem fuk jak to budu mít řešený, hlavně ať to funguje a rozumím tomu kódu což když se na to podívám tak tomu i celkem rozumím, teď jen dořešit to načítání a použití dat ze souboru