Tutorijali.Net forum

Full Version: stringstream primjer
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Code:
int funk (int x,int l)
{
    //x=ukupna suma svega ucitanog
    //trazimo prvu i zadnju cifru
    int zc=x%10;
    
int Number = x;                               //number to convert int a string
string Result;                                  //string which will contain the result
stringstream convert;                      // stringstream used for the conversion
convert<<Number;                          //add the value of Number to the characters in the stream
Result = convert.str();                    //set Result to the content of the stream
string pcr=convert.substr(0,1);
...

Oke, znači, ovakav kodić nađem na netu.. ovo je dio moga jednog koda.
Sad, ako je convert ustvari neki broj konvertovan u string, zašto se ne može iskoristiti member s.substr(a,b) za vađenje podniza?

Probala sam i kastovati ovaj convert u string, ali samo prijavljuje još više grešaka.
Jel može neko da pomogne oko ovoga? (ako može da se riješi na ovaj način, čini mi se najlakše :) )
Poz. :) He he
Ti u biti zelis naci prvu i zadnju cifru datog broja prvu cifru si našla nadjes samo cjelobrojni ostatak djeljenja sa 10 i to je ok zašto istom logikom ne nastaviš cjelobrojno djeliš sa 10 i ostatak stavljaš u posebnu varijablu dok ne dodješ do situacije da ne možeš djeliti nešto ovako
Code:
-----
    int x = 234324340, y;
    
    std::cout << "zadnja cifra je " << x%10 << std::endl;
    while (x%10) {
          y=x%10;
          x=x/10;
    }
    std::cout << "prva cifra je "  << y << std::endl;
------

Nema mi smisla da praviš objekt koji ces na kraju kastovati u integer ??? U c,c++ moraš naučiti razlikovati tipove podataka sve je to u basicu divno i krasno ali u ovom programskom jeziku moraš gledati da je krajnji rezultat što optimalniji kod koji će dati najbolje rješenje. A inače funkcija za pretvaranje niza znakova u cjeli broj je atoi() i itoa() [obrnuto] naravno prvo moraš dobiti niz znakova od string objekta to radis sa c_str() funkcijom pa imas
Code:
int num = atoi(pcr.c_str()).

Te također ova linija koda
Code:
string pcr=convert.substr(0,1);

Bi trebala biti:
Code:
string pcr=Result.substr(0,1);

U svakom slučaju neznam točno što željiš postići pa nemogu ti dati točan odgovor. :)
Hvala ti.
Ma, zaista, iako c++ ima brojne ugrađene funkcije, ovo sa tipovima podataka mi se nikako ne sviđa.

Hvala ti u svakom slučaju. :)
Nema na čemu Namigivanje malko se sad čini besmislenim ali ima velikog smisla, samo polako nitko nije sve preko noći naučio :)
Reference URL's