1.kako pretvorit float u char a da se ne koristi sprintf?
2.
On Error GoTo negdje
i
On Error Resume Next
ovo je kod iz vb-a, kako bi to išlo u c++?
1.kako pretvorit float u char a da se ne koristi sprintf?
2.
On Error GoTo negdje
i
On Error Resume Next
ovo je kod iz vb-a, kako bi to išlo u c++?
1. odgovor je type casting.
2. probaj s try-throw-catch blokom.
npr float a;
static_cast<char>(a);
Za 1., možda si mislio u char* ?
Ja bih to ovako napravio:
#include <sstream>
/* ... */
float val = 4.4452f;
stringstream tok;
tok << val;
const char* rezultat = tok.str().c_str();
1. pitanje rješeno
a ima netko neki dobar primjer za try--catch?
znam da se u try stavlja kod, a catch se izvršava kad se dogodi exception? ili?
Evo pa malo prouči :
#include<iostream>
using namespace std;
int main()
{
int visina =0;
double metri = 1.0;
char znak = 'y';
try
{
while(znak =='y' || znak =='Y')
{
cout<<"Unesi visinu : "<<endl;
cin>>visina;
try{
if(visina>190)
throw"Visina je dosegla svoj maximum!";
if(visina<20)
throw visina;
cout<<visina<<" metara"<<endl;
}
catch(const char Poruka[])
{
cout<<Poruka<<endl;
}
cout<<"Ako ces nastaviti (y ili n)?";
cin>>znak;
}
}
catch(int greska)
{
cout<<greska<<"Ispod minimuma!"<<endl;
}
return 0;
}
if(visina>190)
throw"Visina je dosegla svoj maximum!";
if(visina<20)
throw visina;
Zašto "bacati" visinu?
I kad to već radiš, zašto nisi napravio catch-blok za to?
Radi se o "nested try block" gdje unutrašnji try ne slijedi svoj catch.
Da, ali koji je smisao toga?
Jako zbunjujuć primjer, pogotovo ako nekome pokušavaš objasniti kako rade iznimke.
hvala na primjeru
nadao sam se da ce bit u 2 reda koda ko u basicu al sad vidim da ima dosta posla oko tog.
btw. radi se o dll-u koji pokrene thread u kojem se izvršava while petlja. i sad neznam zbog cega nekad se dogodi exception i ode sve kvragu . jel ima kakve razlike ili bi ovo sa try trebalo radit?
}hvala na primjeru
nadao sam se da ce bit u 2 reda koda ko u basicu al sad vidim da ima dosta posla oko tog.
btw. radi se o dll-u koji pokrene thread u kojem se izvršava while petlja. i sad neznam zbog cega nekad se dogodi exception i ode sve kvragu . jel ima kakve razlike ili bi ovo sa try trebalo radit?
#include<iostream>
using namespace std;
int main()
{
int brojevi[] = {23,45,60,59,0,0,1,0};
int djeljitelj = 1;
for(int x = 0;x < sizeof brojevi/sizeof brojevi[0];x++)
try
{
cout<<endl
<<" " <<x+1;
if(brojevi[x] ==0)
throw" ...Nula -nemoguce izracunati...";
cout<<" izracun : "
<<brojevi[x];
}
catch(const char poruka[])
{
cout<<poruka<<endl;
}
return 0;
}
Radi se o "nested try block" gdje unutrašnji try ne slijedi svoj catch.
hvala na primjeru
nadao sam se da ce bit u 2 reda koda ko u basicu al sad vidim da ima dosta posla oko tog.
btw. radi se o dll-u koji pokrene thread u kojem se izvršava while petlja. i sad neznam zbog cega nekad se dogodi exception i ode sve kvragu . jel ima kakve razlike ili bi ovo sa try trebalo radit?
Ako je riječ o grešci koja se događa u dll-u teško da ćeš ju moći obraditi u svom programu. Ta obrada se treba nalaziti u samom dll-u. To je isto kao da u svom programu pokušavaš doznati zašto se srušio neki drugi program.
ja radim taj dll, tak da nije problem trazit gresku.
aj fala ti na ovolko objašnjenju, nesto cu izmislit.