Compartilhar via


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