C ++ ios_base fmtflags

Descrição

Este tipo é usado como seu parâmetro e / ou valor de retorno pelos sinalizadores de funções de membro, setf e unsetf.

Declaração

A seguir está a declaração para ios_base :: fmtflags.

std::ios_base::fmtflags ff;

Os valores passados ​​e recuperados por essas funções podem ser qualquer combinação válida das seguintes constantes de membro, conforme mostrado abaixo -

campo membro constante efeito quando definido
bandeiras independentes boolalfa ler / gravar elementos bool como strings alfabéticas ( truee false).
showbase escreva valores integrais precedidos por seu prefixo de base numérica correspondente.
showpoint escrever valores de ponto flutuante incluindo sempre o ponto decimal.
showpos escreva valores numéricos não negativos precedidos por um sinal de mais (+).
pular pule os espaços em branco à esquerda em certas operações de entrada.
unitbuf liberar a saída após cada operação de inserção.
maiúsculas escreva letras maiúsculas substituindo as letras minúsculas em certas operações de inserção.

base numérica

(campo de base)

dezembro ler / gravar valores integrais usando formato de base decimal.
hex ler / gravar valores integrais usando formato de base hexadecimal.
outubro ler / gravar valores integrais usando formato de base octal.

formato flutuante

(Floatfield)

fixo escrever valores de ponto flutuante em notação de ponto fixo.
científico escrever valores de ponto flutuante em notação científica.

ajustamento

(ajustar campo)

interno a saída é preenchida com a largura do campo inserindo caracteres de preenchimento em um ponto interno especificado.
esquerda a saída é preenchida com a largura do campo acrescentando caracteres de preenchimento no final.
certo a saída é preenchida para a largura do campo inserindo caracteres de preenchimento no início.

Três constantes de bitmask adicionais feitas da combinação dos valores de cada um dos três grupos de sinalizadores seletivos também podem ser usados ​​como mostrado abaixo.

valor da bandeira equivalente a
ajustar campo esquerda | certo | interno
campo de base dez | outubro | hex
Floatfield científico | fixo

Os valores dessas constantes podem ser combinados em um único valor fmtflags usando o operador bit a bit OR (|).

Exemplo

No exemplo abaixo é mostrado para ios_base :: fmtflags.

#include <iostream>

int main () {

   std::cout.setf (std::ios_base::hex , std::ios_base::basefield);
   std::cout.setf (std::ios_base::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::ios::hex , std::ios::basefield);
   std::cout.setf (std::ios::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::cout.hex , std::cout.basefield);
   std::cout.setf (std::cout.showbase);
   std::cout << 100 << '\n';

   std::ios_base::fmtflags ff;
   ff = std::cout.flags();
   ff &= ~std::cout.basefield;   
   ff |= std::cout.hex;          
   ff |= std::cout.showbase;     
   std::cout.flags(ff);
   std::cout << 100 << '\n';

   std::cout << std::hex << std::showbase << 100 << '\n';

   return 0;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

0x64
0x64
0x64
0x64
0x64