C ++ sprintf () - Biblioteca C ++ Padrão

A função sprintf () em C ++ é usada para gravar uma string formatada no buffer da string de caracteres.

protótipo sprintf ()

 int sprintf (char * buffer, const char * format,…);

A sprintf()função escreve a string apontada por format no buffer. O formato da string pode conter especificadores de formato começando com% que são substituídos pelos valores das variáveis ​​que são passadas para a sprintf()função como argumentos adicionais.

É definido no arquivo de cabeçalho.

Parâmetros sprintf ()

  • buffer: Ponteiro para o buffer da string para escrever o resultado.
  • formato: Ponteiro para uma string terminada em nulo que é gravada no fluxo de arquivos. Consiste em caracteres junto com especificadores de formato opcionais começando com%.

    Os especificadores de formato são substituídos pelos valores das respectivas variáveis ​​que seguem a string de formato.

    O especificador de formato tem as seguintes partes:

    • Um sinal% principal
    • Sinalizadores: um ou mais sinalizadores opcionais que modificam o comportamento de conversão.
      • -: Justificar à esquerda o resultado dentro do campo. Por padrão, é justificado à direita.
      • +: O sinal do resultado é anexado ao início do valor, mesmo para resultados positivos.
      • Espaço: Se não houver sinal, um espaço é anexado ao início do resultado.
      • #: Uma forma alternativa de conversão é executada.
      • 0: é usado para números inteiros e em ponto flutuante. Os zeros à esquerda são usados ​​para preencher os números em vez de espaço.
    • Largura: Um valor opcional * ou inteiro usado para especificar o campo de largura mínima.
    • Precisão: um campo opcional que consiste em a. seguido por * ou inteiro ou nada para especificar a precisão.
    • Comprimento: um modificador de comprimento opcional que especifica o tamanho do argumento.
    • Especificador: um especificador de formato de conversão. Os especificadores de formato disponíveis são os seguintes:
      Especificador de formato Descrição
      % Imprime%
      c Escreve um único personagem
      s Escreve uma string de caracteres
      d ou i Converte um inteiro com sinal em representação decimal
      o Converte um inteiro sem sinal em representação octal
      X ou x Converte um inteiro sem sinal em representação hexadecimal
      você Converte um inteiro sem sinal em representação decimal
      F ou F Converte o número de ponto flutuante em representação decimal
      E ou e Converte o número de ponto flutuante em notação de expoente decimal
      A ou a Converte o número de ponto flutuante em expoente hexadecimal
      G ou g Converte o número de ponto flutuante em notação de expoente decimal ou decimal
      n Retorna o número de caracteres escritos até agora por esta chamada para a função. O resultado é escrito no valor apontado pelo argumento
      p Grava uma sequência de caracteres definida pela implementação definindo um ponteiro.

      Portanto, o formato geral do especificador de formato é: %(flags)(width)(.precision)(length)specifier

  • …: Outros argumentos adicionais especificando os dados a serem impressos. Eles ocorrem em uma sequência de acordo com o especificador de formato.

sprintf () Valor de retorno

  • Se for bem-sucedida, a sprintf()função retorna o número de caracteres que teriam sido gravados para um buffer suficientemente grande, excluindo o caractere nulo final.
  • Em caso de falha, ele retorna um valor negativo.

Exemplo: como funciona a função sprintf ()

 #include #include using namespace std; int main() ( char buffer(100); int retVal; char name() = "Max"; int age = 23; retVal = sprintf(buffer, "Hi, I am %s and I am %d years old", name, age); cout << buffer << endl; cout << "Number of characters written = " << retVal << endl; return 0; )

Quando você executa o programa, a saída será:

 Olá, sou Max e tenho 23 anos. Número de caracteres escritos = 34

Artigos interessantes...