O que é Snprintf em C ++

O que é Snprintf em C ++
C ++ é a linguagem de programação comumente usada que oferece várias vantagens para os programadores. Inclui várias funções internas que podem ser utilizadas para muitos propósitos. Entre essas funções, há uma função chamada Snprint (), quais pessoas mal sabem.

Neste artigo, explicaremos a sintaxe, os parâmetros, os valores de retorno e o trabalho de snprintf () função em c++. Pode -se encontrar um entendimento completo de snprintf () Neste guia.

O que é snprintf () em c++

Em c++, snprintf () é uma função usada para formatar ou armazenar uma série de valores de personagem e string escritos no buffer. Funciona de maneira semelhante a sprintf () função, mas tem a capacidade de superar os transbordamentos de buffer. O O arquivo de cabeçalho inclui o Snprint () função e deve ser declarado se você quiser usar a função em seu programa. O snprintf () função especifica o conteúdo máximo que o buffer poderia ter.

O dado abaixo é a sintaxe para usar snprintf () função em c ++:

snprintf (char* buffer, size_t buf_size, const char* formato,…);

Depois que os personagens foram escritos, um caráter nulo final é inserido. Se Max_bufsize for zero, nada é armazenado e o buffer pode atuar como um ponteiro nulo.

Parâmetros de Snprintf ()

A seguir estão os parâmetros usados ​​em snprintf () função.

  • amortecedor: Um ponteiro para um buffer de string onde a saída será escrita.
  • BUF_SIZE: Max_bufsize-1 é a contagem máxima de caracteres que se pode escrever para o buffer.
  • formatar: Uma string terminada nula foi gravada em um fluxo de arquivos como um ponteiro. É composto por personagens e especificadores de formato possíveis começando com %. Os valores das variáveis ​​que seguem um formato String substituem os especificadores de formato.
  • (argumentos adicionais): Dependendo do tipo de sequência de formato, a função pode esperar uma lista de argumentos adicionais, todos contendo um valor usado para substituir o especificador de formato no formato da string (ou, para max_bufsize, um ponteiro para um local de armazenamento).

Deve haver um mínimo de tantos desses parâmetros que existem valores do especificador de formato. A função ignora qualquer argumento adicional.

O que Snprintf () retorna

Se a função for bem -sucedida, ele retornará o número de caracteres que seriam considerados escritos para um buffer apropriadamente grande, excluindo um caractere nulo terminal. Quando falha, produz um valor negativo. A saída será considerada completamente escrita se e somente se um valor que for retornado não for negativo e for menor que o max_bufsize.

Como usar snprintf () em c++

Aqui está um exemplo de uso de snprintf () em c ++:

Exemplo

#incluir
#incluir
usando namespace std;
int main ()

char buff_size [60];
int return_value, max_bufsize = 60;
char str [] = "linuxhint";
int artigos = 45;
return_value = snprintf (buff_size, max_bufsize, "Hello %s Usuários, vamos ler os artigos de %d sobre Bash", str, artigos);
if (return_value> 0 && return_value < MAX_BUFSIZE)

cout << buff_size << endl;
cout << "Number of characters written = " << return_Value << endl;

outro
cout << "Error writing to buffer" << endl;
retornar 0;

No código acima, definimos o tamanho máximo do buffer para 60. Isso significa que o código aceitará caracteres não mais de 60. Nós usamos o snprintf () Função para produzir uma string com 56 caracteres e será exibida no terminal de saída. Caso seus caracteres inseridos sejam superiores a 60, o programa através de um erro.

Conclusão

Demonstramos o protótipo, parâmetros, valores de retorno e trabalho do C++ snprintf () função que grava uma string formatada em um buffer de string de caracteres. Descrevemos um exemplo com um entendimento completo de snprintf () Neste guia.