atof, atoi, _atoi64, atol (Windows CE 5.0)

Send Feedback

Developing an Application > Microsoft C Run-time Library for Windows CE > Run-time Library Reference

Convert strings to double (atof), integer (atoi, _atoi64), or long (atol).

double atof(    const char *string);int atoi(    const char *string);_int64 _atoi64( const char *string);long atol( const char *string);

Parameters

  • string
    String to be converted.

Return Values

Each function returns the double, int, __int64, or long value produced by interpreting the input characters as a number.

If the input cannot be converted to a value of that type, the return value is 0 (for atoi and _atoi64), 0L (for atol), or 0.0 (for atof).

The return value is undefined in case of overflow.

Remarks

These functions convert a character string to a double-precision floating-point value (atof), an integer value (atoi and _atoi64), or a long integer value (atol).

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 in the current locale.

The longest string size that atof can handle is 100 characters.

The function stops reading the input string at the first character that it cannot recognize as part of a number. This character can be the null character ('\0') terminating the string.

The string argument to atof has the following form:

[whitespace] [sign] [digits] [.digits] [ {d | D | e | E }[sign]digits]

A whitespace consists of spaces and tab characters, which are ignored.

sign is either plus (+) or minus ( – ).

digits are one or more decimal digits. If no digits appear before the decimal point, at least one must appear after the decimal point. Decimal digits can be followed by an exponent, which consists of an introductory letter ( d, D, e, or E) and an optionally signed decimal integer.

atoi, _atoi64, and atol do not recognize decimal points or exponents.

The string argument for these functions has the following form:

[whitespace] [sign]digits

where whitespace, sign, and digits are exactly as described above for atof.

Generic-Text Routine Mappings

TCHAR.H Routine _UNICODE Defined
_ttoi _wtoi
_ttol _wtol

For more information about TCHAR.H routines, see Generic Text Mappings.

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

Requirements

OS Versions: Windows CE 2.0 and later.
Header: stdlib.h.
Link Library: coredll.dll.

See Also

_ecvt | _fcvt | _gcvt

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.