MarNor Skrevet 3. oktober 2004 Del Skrevet 3. oktober 2004 Hei Hvordan får jeg konvertert CHAR til INT? Marthe Lenke til kommentar
Herr_Dude Skrevet 3. oktober 2004 Del Skrevet 3. oktober 2004 chars er representert som ints, så du kan bare sette int variabelen din til char variablelen, men om du skal ha f.eks tallene mellom 0-->9 i char til å bli tallene 0-->9 i int må du trekke fra en verdi(48), for int conventeringen blir til ASCII verdien til char'en. (Du finner ascii tabellen på nettet eller i c++ boken din) Lenke til kommentar
MarNor Skrevet 3. oktober 2004 Forfatter Del Skrevet 3. oktober 2004 eh... er ikke helt sikker på om jeg var med på dette Finnes det ikke en tilsvarende funksjon som "parseInt" i Java?? hvis jeg har: char tegn = '2' hvordan får jeg int tall = 2?? Marthe Lenke til kommentar
iobas Skrevet 3. oktober 2004 Del Skrevet 3. oktober 2004 (endret) du kan velge mellom mange måter. du kan f.eks bruke atoi, sprintf, stringstreams eller boost::lexical_cast alle har vel sin svakheter og styrker. atoi har f.eks ikke noe errorsjekking men er rask og enkel og bruke. mens boost::lexical_cast er typesafe og har errorsjekking men er ganske treig. hvis du ikke trenger hastiget syns jeg det er den peneste måten. char a = '2'; int b = boost::lexical_cast<int>(a); se www.boost.org for mer info ellers kan du gjøre som herr_dude sa, men det er tungvindt og stygt syns jeg da. char a = '2'; int b = a - 48; Endret 3. oktober 2004 av iobas Lenke til kommentar
GeirGrusom Skrevet 4. oktober 2004 Del Skrevet 4. oktober 2004 sscanf går også an, men er neppe noe rask. Lenke til kommentar
Vial Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 char *itoa(int value, char *string, int radix); og int atoi(const char *s); er de enkleste å bruke. Si du har: int tall = 5; char bokstavtall[1] = {'3'}; så bruker du atoi ( toi = to int) slik: tall = atoi(bokstavtall); og itoa slik (ikke spør meg hva radix er, det pleier å funke med 10) itoa(tall, bokstavtall, 10); // verdien i tall blir konvertert til char itoa og atoi ligger i stdlib.h Lenke til kommentar
iobas Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 og itoa slik (ikke spør meg hva radix er, det pleier å funke med 10) det er hvilken base tallet skal bli konvertert til. 10 er vanlig desimal, 16 er hex osv. Lenke til kommentar
snoopafella Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 i c# kan en skrive tall=convert.toint32(variabel/string som skal konverteres) eller no sånn Lenke til kommentar
iobas Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 snoopafella, og poenget ditt er? Lenke til kommentar
snoopafella Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 kansje det funker i c++ også Lenke til kommentar
Orjanp Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 Vil det ikke fungere å bare caste char til int ala char a = '2'; int b = (int)a; Selvsagt ingen error kontroll, men... Lenke til kommentar
søppel Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 Hvorfor kommer folk med en haug forslag de ikke tester før de kommer med dem? Lenke til kommentar
Tr1llobite Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 kansje det funker i c++ også Nei. Lenke til kommentar
sumptrollet Skrevet 6. oktober 2004 Del Skrevet 6. oktober 2004 (endret) kanskje jeg bør begynne å lese hele tråden før jeg svarer. Endret 6. oktober 2004 av sumptrollet Lenke til kommentar
haakoo Skrevet 8. oktober 2004 Del Skrevet 8. oktober 2004 (endret) Vil det ikke fungere å bare caste char til int ala char a = '2'; int b = (int)a; Selvsagt ingen error kontroll, men... Da ender du vel opp med tegnsettverdien, som typisk er 0x30 høyere enn verdien. Edit: leifer Endret 8. oktober 2004 av haakoo Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå