sscanf

Gast #553212
Lesenswert?
• ▲
▼
Hallo

Ich verwende den hitec c compiler für dspic. Nun möchte ich für einen
umwandlung von hex to int aus einem string die sscanf funktion benutzen:

mein code sieht wie folgt aus:
1
char  Temp_Buffer[5];
2
char *pBuffer;
3
int nResult;
4

5
*pBuffer = &Temp_Buffer[0];
6
scanf(pBuffer,"%x",&nResult);

ich bekomme jedoch immer eine fehlermeldung:

>Error[500]   : undefined symbols:
>  _putch (D:\MPLAB\HTSOFT\dsPICC_9.60\lib\dspicc-sc.lib: >cgets.obj)_getche 
(D:\MPLAB\HTSOFT\dsPICC_9.60\lib\dspicc-sc.lib: cgets.obj)
>BUILD FAILED: Thu May 03 14:16:28 2007


vieleicht kann mir jemand weiterhelfen was ich falsch mache.

Besten Dank

Tobias
#553221
Lesenswert?
• ▲
▼
Bei deinem Problem kann ich dir so nicht helfen.
Das sieht aus als ob in deinem Setup irgendwo der Wurm
drinnen ist (falls du im echten Code sscanf und nicht scanf
wie im Posting aufgerufen hast).

Aber:
sscanf ist für dieses Problem mit Kanonen auf Spatzen schiessen:
1
unsigned int HexToI( const char* Text )
2
{
3
  unsigned int Result = 0;
4
  char c;
5

6
  while( ( c = *Text++ ) != '\0' ) {
7

8
    if( c >= '0' && c <= '9' )
9
      Result = 16 * Result + c - '0';
10

11
    else if ( c >= 'A' && c <= 'F' )
12
      Result = 16 * Result + c - 'A' + 10;
13

14
    else if ( c >= 'a' && c <= 'f' )
15
      Result = 16 * Result + c - 'a' + 10;
16

17
    else
18
      return Result;
19
  }
20

21
  return Result;
22
}

  
Gast #553240
Lesenswert?
• ▲
▼
char  Temp_Buffer[5];
char *pBuffer;
int nResult;

pBuffer = &Temp_Buffer[0];//müsste so aussehn. *pBuffer = 
&Temp_Buffer[0];
scanf(pBuffer,"%x",&nResult);

Wieso wird in deinem Code *pBuffer mit der Adresse von Temp_Buffer, und 
nicht pBuffer mit der Adresse von Temp_Buffer geladen?
So verwendest in scanf immer noch die alte Adresse von pBuffer.

Gruss

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren