Avatar billede xiol Nybegynder
14. september 2005 - 18:23 Der er 10 kommentarer og
1 løsning

int til streng

jeg har en integer 9 som jeg gerne vil konvater til en streng og koble et "0" foran. For så sener at sætte den sammen med en anden streng f.eks "45:". så det endelig resultat bliver "45:09". jeg skriver i C++

på forhånd tak Xiol
Avatar billede xiol Nybegynder
14. september 2005 - 18:26 #1
det skal lige tilføjes at jeg har prøvet at bruge itoa() men kan ikke regtig få det til at fungere
Avatar billede arne_v Ekspert
14. september 2005 - 18:32 #2
prøv:

char buf[10];
sprintf(buf,"%d:%02d",45,9);
Avatar billede arne_v Ekspert
14. september 2005 - 18:33 #3
læs evt. http://www.eksperten.dk/artikler/143 for diverse tips
Avatar billede xiol Nybegynder
14. september 2005 - 18:45 #4
jeg vil gerne ende med en string variabel som indeholer resultatet.
Avatar billede arne_v Ekspert
14. september 2005 - 19:08 #5
det gør

char buf[10];
sprintf(buf,"%d:%02d",45,9);

jo netop !
Avatar billede xiol Nybegynder
14. september 2005 - 19:11 #6
tak for det. jeg tror har luret det nu. hvis du smider et svar. så sender jeg nogle point i din retning.
Avatar billede arne_v Ekspert
14. september 2005 - 19:18 #7
svar
Avatar billede arne_v Ekspert
14. september 2005 - 19:18 #8
sprintf er en særdels nyttig funktion
Avatar billede lars314 Nybegynder
16. september 2005 - 14:11 #9
I C++ kan du også lave dig følgende lille function.
Den vil konverterer næsten hvad som helst til en streng.
Strengen vil være "wi" tegn bred med evt. overskydende pladse til ventre fyldt ud med "fi"-tegn og hvis det give mening "pr" decimaler.

eksempler:
toString(3.1415927, 7,3)    giver "  3.142"
toString("Olsen", 7, 5, '-') giver "--Olsen"
toString(4, 2, 0, '0')      giver "04"


-------- funktion ------------------

template <typename T>
inline std::string toString(const T& i, int wi, int pr, char fi = ' ')
{
    std::basic_ostringstream<char> o;
    if(wi > 0)
        o << std::setfill(fi) << std::setw(wi);
    if(pr >= 0)
        o << std::setprecision(pr);
    o << i;
    return o.str();
}
Avatar billede arne_v Ekspert
16. september 2005 - 21:30 #10
og den er typesafe

men jeg har altid betragtet stringstream som meget klodset sammenlignet med sprintf

og performance er ikke god ...
Avatar billede lars314 Nybegynder
17. september 2005 - 15:35 #11
Jeg arbejder stadig på at vænne mig af med at bruge sprintf og sscanf, det er ret svært, da de jo er meget nyttige.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis