Avatar billede al1407 Nybegynder
08. februar 2003 - 13:52 Der er 8 kommentarer og
1 løsning

converte en const char * til integer ?

Jeg har en Win32 App hvor jeg via strok() splitter CmdLine ved " \t" og derudfra får et array med strenge indeholdende hhv. parameter og (idx+1) værdi.

szSplit[] hedder array'et.

Når jeg går det igennem har jeg en parameter, f.eks. '-w'. Jeg bruger strcmp() til at teste. index + 1 indeholder værdien, f.eks. '1280'.

Jeg har en variabel af typen DWORD hvori værdien skal gemmes. Hvis jeg cast'er:

dsSettings.dwWidth = (DWORD)szSplit[nextIndex];

(DWORD|int|long .. har prøvet dem alle) .. så giver resultatet '49' !?

jeg kan ikke umiddelbart finde nogle funktioner der kan konvertere en streng til 'int' f.eks.

PS. jeg er RET så nybegynder ...

Er der nogle der kan hjælpe ?

dw
Avatar billede al1407 Nybegynder
08. februar 2003 - 13:53 #1
strtok() skulle det være ;o)
Avatar billede al1407 Nybegynder
08. februar 2003 - 13:53 #2
Jeg bruger btw. VC++ 6.0 .. in case it matters ...
Avatar billede arne_v Ekspert
08. februar 2003 - 13:55 #3
Ja ASCII koden for '1' er 49 så det er korrekt !

:-)
Avatar billede arne_v Ekspert
08. februar 2003 - 13:56 #4
Der er en funktion atoi som kan konvertere fra streng til
int.

atoi("1280") vil returnere 1280 som er det du vil have.
Avatar billede arne_v Ekspert
08. februar 2003 - 13:59 #5
Nu kan jeg ikke helt gennemskue om dit szSplit indeholder
at erray of string (=two dimensional array of char) eller
kun en string (=array of char).

I første tilfælde må du kunne bruge:

dsSettings.dwWidth = atoi(szSplit[nextIndex]);

I det andet tilfælde skal du have lavet en ny streng som
indeholder et udsnit af den store streng.
Avatar billede arne_v Ekspert
08. februar 2003 - 14:00 #6
Og atoi er erklæret i stdlib.h !
Avatar billede al1407 Nybegynder
08. februar 2003 - 15:25 #7
char *szSplit[20];

har jeg .. og szSplit[0] indeholder f.eks. "-w" og [1] "1280".

Jeg er ikke hjemme lige pt., så jeg kan ikke teste det her, så jeg venter med at acceptere dit svarm før jeg har testet det.

Men tak for hjælpen indtil videre :)
Avatar billede arne_v Ekspert
08. februar 2003 - 15:28 #8
Det er et 2 dimensionelt char array eller et string array, så
atoi(szSplit[1]) bør returnere 1280.
Avatar billede al1407 Nybegynder
08. februar 2003 - 15:33 #9
Fint .. jeg har lige checket MSDN og det ser ud til at du har ret, så du kan godt få pointene nu :)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_atof.2c_.atoi.2c_._atoi64.2c_.atol.asp?
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