Avatar billede winkill Nybegynder
19. september 2000 - 19:55 Der er 4 kommentarer og
1 løsning

Konverter Unsigned Int til...

Visual C++ 6.0

Jeg kalder en ISAPI funktion som så returnerer en unsigned int. Denne skal jeg så have puttet ind i en char* dimmer.

Her er koden...

void CISAExtension::Default(CHttpServerContext* pCtxt)
{
    unsigned long dwSize;
    char *cpSize;

    dwSize = pCtxt->GetChunkSize();
    // Her skal jeg så have smidt dwSize over i *cpSize sådan at jeg kan smide den ind i *pCtxt som det ses nedenfor.

    *pCtxt << _T(\"<html>\\n</head>\\n<title>INerd ISAPI Tests</title>\\n</head></body>\\n\");
    *pCtxt << cpSize;
    *pCtxt << _T(\"\\n\");
    *pCtxt << _T(\"</body>\\n</head>\\r\\n\");
}

Med andre ord, jeg vil gerne have lavet dette:
unsigned int dwSize = 0;
om til dette:
char *cpSize = \"0\";

Hvordan?
Avatar billede rm Nybegynder
19. september 2000 - 19:58 #1
fra msdn:

_itoa, _i64toa, _ui64toa, _itow, _i64tow, _ui64tow
Convert an integer to a string.

char *_itoa( int value, char *string, int radix );

char *_i64toa( __int64 value, char *string, int radix );

char * _ui64toa( unsigned _int64 value, char *string, int radix );

wchar_t * _itow( int value, wchar_t *string, int radix );

wchar_t * _i64tow( __int64 value, wchar_t *string, int radix );

wchar_t * _ui64tow( unsigned __int64 value, wchar_t *string, int radix );

Routine Required Header Compatibility
_itoa <stdlib.h> Win 95, Win NT
_i64toa <stdlib.h> Win 95, Win NT
_ui64toa <stdlib.h> Win 95, Win NT
_itow <stdlib.h> Win 95, Win NT
_i64tow <stdlib.h> Win 95, Win NT
_ui64tow <stdlib.h> Win 95, Win NT


For additional compatibility information, see Compatibility in the Introduction.

Libraries

LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version


Return Value

Each of these functions returns a pointer to string. There is no error return.

Parameters

value

Number to be converted

string

String result

radix

Base of value; must be in the range 2 – 36

Remarks

The _itoa, _i64toa, and _ui64toa function convert the digits of the given value argument to a null-terminated character string and stores the result (up to 33 bytes) in string. If radix equals 10 and value is negative, the first character of the stored string is the minus sign ( – ). _itow, _i64tow, and _ui64tow are wide-character versions of _itoa, _i64toa, and _ui64toa respectively.

Generic-Text Routine Mappings

TCHAR.H Routine  _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined
_itot _itoa _itoa _itow


Example

/* ITOA.C: This program converts integers of various
* sizes to strings in various radixes.
*/

#include <stdlib.h>
#include <stdio.h>

void main( void )
{
  char buffer[20];
  int  i = 3445;
  long l = -344115L;
  unsigned long ul = 1234567890UL;

  _itoa( i, buffer, 10 );
  printf( \"String of integer %d (radix 10): %s\\n\", i, buffer );
  _itoa( i, buffer, 16 );
  printf( \"String of integer %d (radix 16): 0x%s\\n\", i, buffer );
  _itoa( i, buffer, 2  );
  printf( \"String of integer %d (radix 2): %s\\n\", i, buffer );

  _ltoa( l, buffer, 16 );
  printf( \"String of long int %ld (radix 16): 0x%s\\n\", l,
                                                    buffer );

  _ultoa( ul, buffer, 16 );
  printf( \"String of unsigned long %lu (radix 16): 0x%s\\n\", ul,
                                                    buffer );
}


Output

String of integer 3445 (radix 10): 3445
String of integer 3445 (radix 16): 0xd75
String of integer 3445 (radix 2): 110101110101
String of long int -344115 (radix 16): 0xfffabfcd
String of unsigned long 1234567890 (radix 16): 0x499602d2


Data Conversion Routines

See Also  _ltoa, _ultoa

Avatar billede rm Nybegynder
19. september 2000 - 20:03 #2
msdn findes også i en online version:

http://msdn.microsoft.com/default.asp
Avatar billede rm Nybegynder
19. september 2000 - 20:07 #3
men er det du skal bruge ikke:

_ultoa, _ultow
Convert an unsigned long integer to a string.

char *_ultoa( unsigned long value, char *string, int radix );

wchar_t *_ultow( unsigned long value, wchar_t *string, int radix );

Routine Required Header Compatibility
_ultoa <stdlib.h> Win 95, Win NT
_ultow <stdlib.h> or <wchar.h> Win 95, Win NT


For additional compatibility information, see Compatibility in the Introduction.

Libraries

LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version


Return Value

Each of these functions returns a pointer to string. There is no error return.

Parameters

value

Number to be converted

string

String result

radix

Base of value

Remarks

The _ultoa function converts value to a null-terminated character string and stores the result (up to 33 bytes) in string. No overflow checking is performed. radix specifies the base of value; radix must be in the range 2 – 36. _ultow is a wide-character version of _ultoa.

Generic-Text Routine Mappings

TCHAR.H Routine  _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined
_ultot _ultoa _ultoa _ultow


Example

/* ITOA.C: This program converts integers of various
* sizes to strings in various radixes.
*/

#include <stdlib.h>
#include <stdio.h>

void main( void )
{
  char buffer[20];
  int  i = 3445;
  long l = -344115L;
  unsigned long ul = 1234567890UL;

  _itoa( i, buffer, 10 );
  printf( \"String of integer %d (radix 10): %s\\n\", i, buffer );
  _itoa( i, buffer, 16 );
  printf( \"String of integer %d (radix 16): 0x%s\\n\", i, buffer );
  _itoa( i, buffer, 2  );
  printf( \"String of integer %d (radix 2): %s\\n\", i, buffer );

  _ltoa( l, buffer, 16 );
  printf( \"String of long int %ld (radix 16): 0x%s\\n\", l,
                                                    buffer );

  _ultoa( ul, buffer, 16 );
  printf( \"String of unsigned long %lu (radix 16): 0x%s\\n\", ul,
                                                    buffer );
}


Output

String of integer 3445 (radix 10): 3445
String of integer 3445 (radix 16): 0xd75
String of integer 3445 (radix 2): 110101110101
String of long int -344115 (radix 16): 0xfffabfcd
String of unsigned long 1234567890 (radix 16): 0x499602d2


Data Conversion Routines

See Also  _itoa, _ltoa

Avatar billede winkill Nybegynder
19. september 2000 - 20:22 #4
Ok, jeg fik vidst skrevet at det var en unsigned int, det skulle have været en unsigned long - men det fangede i vidst, for _ultoa fungerer perf.

Tak
Avatar billede winkill Nybegynder
19. september 2000 - 20:23 #5
i = du
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