_wtoi, _wtoi64, _wtol
Converts a wide-character string to an integer (_wtoi and _wtoi64) or to a long integer (_wtol).
int_wtoi(constwchar_t*string);
__int64_wtoi64(wchar_t*string);
long_wtol(constwchar_t*string);
Routine | Required Header | Compatibility |
_wtoi | <stdlib.h> or <wchar.h> | Win 95, Win NT |
_wtoi64 | <stdlib.h> or <wchar.h> | Win 95, Win NT |
_wtol | <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 function returns the int, __int64, or long value produced by interpreting the input characters as a number. If the input cannot be converted to a value of the appropriate type, _wtoi and _wtoi64 return 0 and _wtol returns 0L. The return value is undefined in case of overflow.
Parameter
string
String to be converted
Remarks
The _wtoi and _wtoi64 function converts a wide-character string to an integer value. _wtol converts a wide-character string to a long integer value. The input string is a sequence of characters that can be interpreted as a numerical value of the specified type. The output value is affected by the setting of the LC_NUMERIC category of the current locale. (For more information on the LC_NUMERIC category, see setlocale.The function stops reading the input string at the first character that it cannot recognize as part of a number. This character may be the null character (L'\0') terminating the string.
The string argument for these functions has the form
[whitespace] [sign]digits
A whitespace consists of space and/or tab characters, which are ignored. sign is either plus (+) or minus ( – ). digits is one or more decimal digits. _wtoi, _wtoi64, and _wtol do not recognize decimal points or exponents.
Example
/* ATOF.C: This program shows how numbers stored
* as strings can be converted to numeric values
* using the atof, atoi, and atol functions.
*/
#include <stdlib.h>
#include <stdio.h>
void main( void )
{
char *s; double x; int i; long l;
s = " -2309.12E-15"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
s = "7.8912654773d210"; /* Test of atof */
x = atof( s );
printf( "atof test: ASCII string: %s\tfloat: %e\n", s, x );
s = " -9885 pigs"; /* Test of atoi */
i = atoi( s );
printf( "atoi test: ASCII string: %s\t\tinteger: %d\n", s, i );
s = "98854 dollars"; /* Test of atol */
l = atol( s );
printf( "atol test: ASCII string: %s\t\tlong: %ld\n", s, l );
}
Output
atof test: ASCII string: -2309.12E-15 float: -2.309120e-012
atof test: ASCII string: 7.8912654773d210 float: 7.891265e+210
atoi test: ASCII string: -9885 pigs integer: -9885
atol test: ASCII string: 98854 dollars long: 98854