/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
SSCANF
Fra : Repzak


Dato : 15-03-05 18:07

Hey

Nogle der hurtigt kan fortælle mig hvordan jeg laver denne sætning bare uden
den venter på en CR eller NULL, da den ikke kommer pga det er i en Buffer
jeg bruger den :

sscanf(E_VAL(2),"%4X",&value);

jeg skal bare læse en int. værdi der står i en string som hex.

Kasper



 
 
Bertel Brander (15-03-2005)
Kommentar
Fra : Bertel Brander


Dato : 15-03-05 20:03

Repzak wrote:
> Hey
>
> Nogle der hurtigt kan fortælle mig hvordan jeg laver denne sætning bare uden
> den venter på en CR eller NULL, da den ikke kommer pga det er i en Buffer
> jeg bruger den :
>
> sscanf(E_VAL(2),"%4X",&value);
>
> jeg skal bare læse en int. værdi der står i en string som hex.
>

value = (int )strtol(MyString, 0, 16);

Men du er nok nødt til at putte en '\0' ind i enden af bufferen.

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Bertel Brander (15-03-2005)
Kommentar
Fra : Bertel Brander


Dato : 15-03-05 20:30

Bertel Brander wrote:
> Repzak wrote:
>
>> Hey
>>
>> Nogle der hurtigt kan fortælle mig hvordan jeg laver denne sætning
>> bare uden den venter på en CR eller NULL, da den ikke kommer pga det
>> er i en Buffer jeg bruger den :
>>
>> sscanf(E_VAL(2),"%4X",&value);
>>
>> jeg skal bare læse en int. værdi der står i en string som hex.
>>
>
> value = (int )strtol(MyString, 0, 16);
>

Eller hvis man ikke vil have 0 terminering & det er 4 tegn
& man ikke gider checke for fejl:

#include <stdio.h>

int main()
{
char T[] = "0x12aF", *s;
int i = 0;
for(s = &T[2]; s != &T[6]; s++)
{
i *= 16;
i += *s >= '0' && *s <= '9' ? *s - '0' :
*s >= 'A' && *s <= 'F' ? *s - 'A' + 10 : *s - 'a' + 10;
}
printf("Result: %X %d\n", i, i);
return 0;
}

--
Absolutely not the best homepage on the net:
http://home20.inet.tele.dk/midgaard
But it's mine - Bertel

Repzak (15-03-2005)
Kommentar
Fra : Repzak


Dato : 15-03-05 21:28

Hej

Tak..

men har fået dette bikset sammen:

unsigned int STOI(unsigned int adr)
{
unsigned char k;
unsigned int temp,value;
for(k=0;k<=3;k++)
{
temp = *(unsigned char*)(adr+k);
if(temp >=0x40)
temp += 9;
temp &= 0x0f;
value <<=4;
value |= temp;
}
return value;

problemet var jeg ikke kan 0 terminere det da det er data bufferen i et
"netkort"

hvis det ikke er til at fatte der det pga jeg har offset ind lid forskellgie
steder
men fuck jeg får kørt rundt i nogle pointere og type cast og etc... føj

Kasper



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408176
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste