Seqüência de funções de valor numérico

Comentários

Cada função na strtod família converte uma seqüência terminada por caractere nulo em um valor numérico.As funções disponíveis estão listadas na tabela a seguir.

Função

Descrição

strtod

Converter a seqüência de caracteres para o valor de ponto flutuante de precisão dupla

strtol

Converter string em inteiro longo

strtoul

Converter string em inteiro longo não assinado

_strtoi64

Converter a seqüência de caracteres para 64 bits __int64 inteiro

_strtoui64

Conversão de seqüência para não assinado de 64 bits __int64 inteiro

wcstod, wcstol, wcstoul, and _wcstoi64 are wide-character versions of strtod, strtol, strtoul, and _strtoi64, respectively.O argumento de seqüência de caracteres para cada uma dessas funções de caractere largo é uma seqüência de caracteres largos; cada função se comporta exatamente à sua contraparte byte–character único caso contrário.

O strtod função leva dois argumentos: a primeira é a seqüência de caracteres de entrada e o segundo um ponteiro para o caractere que termina o processo de conversão.strtol, strtoul, _strtoi64 e _strtoui64 como o número base a ser usado no processo de conversão, dar um terceiro argumento.

A seqüência de caracteres de entrada é uma seqüência de caracteres que podem ser interpretados como um valor numérico do tipo especificado.Cada função interrompe a leitura a seqüência de caracteres no primeiro caractere que não reconhece como parte de um número.Isso pode ser o caractere nulo de terminação.Para strtol, strtoul, _strtoi64, e _strtoui64, o caractere de terminação também pode ser o primeiro caractere numérico maior que ou igual ao número fornecido pelo usuário base.

Se o ponteiro fornecido pelo usuário em um caractere de fim-de-conversão não está definido como Nulo em tempo de chamada, um ponteiro para o caractere que parou a verificação será armazenado em vez disso.Se nenhuma conversão pode ser realizada (não foi encontrado nenhum dígito válido ou uma base inválida foi especificada), o valor do ponteiro de seqüência de caracteres é armazenado nesse endereço.

strtodespera uma seqüência de caracteres do seguinte formato:

espaço em branco] sign] digits] **.**digits [ {d | D | e | E}signdigits

A espaço em branco pode consistir em caracteres de espaço ou tabulação, que são ignorados; sinal de está plus (+) ou sinal de subtração (); e digits são um ou mais dígitos decimais.Se nenhum dígito aparecer antes do caractere fracionário, pelo menos um deve aparecer após o caractere fracionário.Os dígitos decimais podem ser seguidos por um expoente, que consiste em uma carta de apresentação (d, d, e, ou e) e um inteiro assinado opcionalmente.Se uma parte expoente nem um caractere fracionário aparecer, será considerado um caractere fracionário siga o último dígito na seqüência de caracteres.O primeiro caractere que não cabe neste formulário pára a varredura.

O strtol, strtoul, _strtoi64, e _strtoui64 funções esperam uma seqüência de caracteres do seguinte formato:

espaço em branco[{+ | }]0 { x | X}]] digits

Se o argumento base estiver entre 2 e 36, ele é usado como a base do número.Se for 0, os caracteres iniciais referenciados pelo ponteiro de fim-de-conversão são usados para determinar a base.Se o primeiro caractere é 0 e o segundo caractere não é 'x' ou 'X', a seqüência de caracteres é interpretada como um inteiro octal; Caso contrário, ele é interpretado como um número decimal.Se o primeiro caractere é '0' e o segundo é o caractere 'x' ou 'X', a seqüência de caracteres é interpretada como um inteiro hexadecimal.Se o primeiro caractere é ' 1' a ' 9', a seqüência de caracteres é interpretada como um número inteiro decimal.As letras 'a' a 'z' (ou 'A' a 'Z') é atribuída os valores de 10 a 35; apenas letras cujos valores atribuídos estão menos de base são permitidos.strtoule _strtoui64 permitem que um sinal de mais (+) ou sinal de subtração () o prefixo de sinal. um sinal de subtração à esquerda indica que o valor de retorno será negado.

O valor de saída é afetado pela configuração do LC_NUMERIC definição de categoria da localidade; consulte setlocale para obter mais informações.As versões dessas funções, sem a _l sufixo usar o local atual para este comportamento depende da localidade; as versões com o _l sufixo são idênticas exceto que eles usam o parâmetro de localidade passado em vez disso.

Quando o valor retornado por essas funções poderia causar um estouro positivo ou negativo, ou quando a conversão não é possível, os valores de casos especiais são retornados como mostrado:

Função

Condição

Valor retornado

strtod

Estouro

+/- HUGE_VAL

strtod

Estouro negativo ou nenhuma conversão

0

strtol

+ Estouro

LONG_MAX

strtol

-Estouro

LONG_MIN

strtol

Estouro negativo ou nenhuma conversão

0

_strtoi64

+ Estouro

_I64_MAX

_strtoi64

-Estouro

_I64_MIN

_strtoi64

Nenhuma conversão

0

_strtoui64

Estouro

_UI64_MAX

_strtoui64

Nenhuma conversão

0

_I64_MAX, _I64_MIN, e _UI64_MAX são definidos em limites.H.

wcstod, wcstol, wcstoul, _wcstoi64, and _wcstoui64 are wide-character versions of strtod, strtol, strtoul, _strtoi64, and _strtoui64, respectively; o ponteiro para um argumento de fim-de-conversão para cada uma dessas funções de caractere largo é uma seqüência de caracteres largos.Caso contrário, cada uma dessas funções de caractere largo comportamento identicamente à sua contraparte único-byte–character.

Consulte também

Referência

Conversão de Dados

Localidade

Interpretação de seqüências de caracteres Multibyte

Suporte de ponto flutuante

atof, _atof_l, _wtof, _wtof_l