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

Comentários

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

Função

Descrição

strtod

Converter string em 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 string em 64 bit __int64 número inteiro

_strtoui64

Converter string em 64 bit sem sinal __int64 número inteiro

wcstod, wcstol, wcstoul, e _wcstoi64 são versões de caractere largo das strtod, strtol, strtoul, e _strtoi64, respectivamente. O argumento de seqüência de caracteres para cada uma dessas funções de caractere largo é uma seqüência de caracteres de caracteres largos e se cada função comporta de forma idêntica à sua contraparte único byte–character caso contrário.

The strtod função leva dois argumentos: a primeira é a seqüência de caracteres de entrada e o segundo um ponteiro para o caractere que finaliza o processo de conversão.strtol, strtoul, _strtoi64 and _strtoui64 veja um terceiro argumento, sistema autônomo o número base a ser usado no processo de conversão.

A cadeia de caracteres de entrada é uma sequência de caracteres que podem ser interpretados sistema autônomo 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 sistema autônomo parte de um número.Isso pode ser o caractere nulo de terminação.For strtol, strtoul, _strtoi64, e _strtoui64, esse 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 para um caractere de participante de conversão não está definido como NULO em time de telefonar, um ponteiro para o caractere que parou a verificação serão armazenadas lá em vez disso.Se nenhuma conversão pode ser executada (nenhum dígito válido foi encontrado ou uma base inválido foi especificada), o valor do ponteiro seqüência é armazenado nesse endereço.

strtod espera uma seqüência de caracteres dos seguintes formulário:

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

A espaço em branco pode consistir em caracteres de espaço ou tabulação, que são ignorados; sinal está plus (+) ou menos (); and digits são um ou mais dígitos Decimal. Se nenhum dígito aparecer antes do caractere fracionário, pelo menos um deve aparecer depois do caractere fracionário.Dígitos Decimal podem ser seguidos por um expoente, que consiste em uma carta introdutória (d, D, e, or E) e, opcionalmente, inteiro com sinal.Se nem 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 interrompe a varredura.

The strtol, strtoul, _strtoi64, e _strtoui64 funções de esperam uma seqüência de caracteres de forma a seguir:

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

Se o argumento base estiver entre 2 e 36, ele é usado sistema autônomo a base do número.Se for 0, os caracteres iniciais referenciados pelo ponteiro participante 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 será interpretada sistema autônomo um inteiro octal; caso contrário, ele é interpretado sistema autônomo um número decimal.Se o primeiro caractere é '0' e o segundo caractere será 'x' ou 'X', a seqüência de caracteres é interpretada sistema autônomo um inteiro hexadecimal.Se o primeiro caractere é ' 1 ' através de ' 9 ', a seqüência de caracteres será interpretada sistema autônomo 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 têm menos de base são permitidos.strtoul e _strtoui64 permitir que um sinal de adição (+) ou menos () sinal de prefixo, um sinal de subtração entrelinhamento indica que o valor retornado é negado.

O valor de saída é afetado pela configuração do LC_NUMERIC categoria de configuração da localidade; consulte setlocale para obter mais informações.As versões dessas funções sem o _l sufixo use a localidade corrente para esse comportamento dependente de localidade; as versões com o _l sufixo são idênticas exceto que usarem o parâmetro de localidade passado em vez disso.

Quando o valor retornado por essas funções poderia causar um estouro ou estouro negativo ou quando a conversão não é possível, valores casos especiais são retornados sistema autônomo 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, and _UI64_MAX são definidos em LIMITS.H.

wcstod, wcstol, wcstoul, _wcstoi64, e _wcstoui64 são versões de caractere largo das strtod, strtol, strtoul, _strtoi64, e _strtoui64, respectivamente, o ponteiro para um argumento participante da conversão para cada uma dessas funções de caractere largo é uma seqüência de caracteres largos. Se caso contrário, cada uma dessas funções de caractere largo comporta de forma idêntica à sua contraparte byte–character único.

Consulte também

Referência

Conversão de Dados

Localidade

Interpretação de seqüências de caractere multibyte

Suporte de ponto flutuante

atof, _atof_l, _wtof, _wtof_l