We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.


Converts a character sequence to a long.

long stol(
    const string& _Str,
    size_t *_Idx = 0,
    int _Base = 10
long stol(
    const wstring& _Str, 
    size_t *_Idx = 0,
    int _Base = 10




The character sequence to be converted.


The index value of the first unconverted character.


The number base to use.

The long-integer value.

The function converts the sequence of elements in _Str to a value _Val of type long as if by calling strtol(_Str.c_str(), _Eptr, _Base), where _Eptr is an object internal to the function. If _Str.c_str() == *_Eptr it throws an object of type invalid_argument. If such a call would set errno, it throws an object of type out_of_range. Otherwise, if _Idx is not a null pointer, the function stores *_Eptr - _Str.c_str() in *_Idx and returns _Val.

Header: <string>

Namespace: std