Biblioteca C ++ IOS - Setf
Descrição
É usado para definir sinalizadores de formato específicos. Os sinalizadores de formato de um fluxo afetam a maneira como os dados são interpretados em certas funções de entrada e como são escritos por certas funções de saída. Veja ios_base :: fmtflags para os valores possíveis dos argumentos desta função.
Declaração
A seguir está a declaração para a função ios_base :: setf.
set (1) fmtflags setf (fmtflags fmtfl);
mask (2) fmtflags setf (fmtflags fmtfl, fmtflags mask);
A primeira forma (1) define os sinalizadores de formato do fluxo cujos bits são definidos em fmtfl, deixando o resto inalterado, como se fosse uma chamada para sinalizadores (fmtfl | sinalizadores ()).
A segunda forma (2) define os sinalizadores de formato do fluxo cujos bits são definidos em fmtfl e mask, e limpa os sinalizadores de formato cujos bits são definidos em mask, mas não em fmtfl, como se uma chamada para sinalizadores ((fmtfl & mask) | (sinalizadores () e ~ máscara)).
Parâmetros
fmtfl- Sinalizadores de formato a serem definidos. Se a segunda sintaxe for usada, apenas os bits definidos em fmtfl e mask são definidos nos sinalizadores de formato do fluxo; os sinalizadores definidos na máscara, mas não no fmtfl, são apagados.
mask - Máscara contendo os sinalizadores a serem modificados.
Valor de retorno
Os sinalizadores de formato selecionados no fluxo antes da chamada.
Exceções
Basic guarantee - se uma exceção for lançada, o fluxo está em um estado válido.
Corridas de dados
Modifica o objeto stream. O acesso simultâneo ao mesmo objeto de fluxo pode causar disputas de dados.
Exemplo
No exemplo abaixo explica sobre a função ios_base :: setf.
#include <iostream>
int main () {
std::cout.setf ( std::ios::hex, std::ios::basefield );
std::cout.setf ( std::ios::showbase );
std::cout << 100 << '\n';
std::cout.unsetf ( std::ios::showbase );
std::cout << 100 << '\n';
return 0;
}
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -
0x64
64