Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.