Neste artigo, explicaremos a sintaxe, parâmetros, valores de retorno e funcionamento de snprintf() função em C++. Pode-se encontrar uma compreensão completa 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 caracteres e strings gravados no buffer. Funciona de forma semelhante a sprintf() função, mas tem a capacidade de superar estouros de buffer. O
O dado abaixo é a sintaxe a ser usada snprintf() função em C++:
snprintf ( Caracteres * amortecedor, tamanho_t buf_size, const Caracteres * formato,... ) ;
Uma vez que os caracteres tenham sido escritos, um caractere nulo de finalização é inserido. Se MAX_BUFSIZE for zero, nada será armazenado e o buffer poderá 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á gravada.
- buf_size : MAX_BUFSIZE-1 é a contagem máxima de caracteres que se pode gravar no buffer.
- formatar : uma string terminada em nulo foi gravada em um fluxo de arquivo como um ponteiro. É composto de caracteres e possíveis especificadores de formato começando com %. Os valores das variáveis que seguem uma string de formato substituem os especificadores de formato.
- (argumentos adicionais) : dependendo do tipo de string de formato, a função pode esperar uma lista de argumentos adicionais, todos contendo um valor que é usado para substituir o especificador de formato no formato da string (ou, para MAX_BUFSIZE, um ponteiro para um local de armazenamento) .
Deve haver no mínimo tantos parâmetros quantos forem os valores especificadores de formato. A função ignora qualquer argumento adicional.
O que snprintf () retorna
Se a função for bem-sucedida, ela retornará o número de caracteres que seriam considerados gravados para um buffer adequadamente grande, excluindo um caractere nulo de terminação. Quando falha, produz um valor negativo. A saída será considerada completamente gravada se e somente se um valor retornado for não negativo e menor que MAX_BUFSIZE.
Como usar snprintf() em C++
Aqui está um exemplo de uso de snprintf() em C++:
Exemplo
#include#include
usando namespace std ;
int principal ( )
{
Caracteres buff_size [ 60 ] ;
int return_Value, MAX_BUFSIZE = 60 ;
Caracteres str [ ] = 'linux' ;
int artigos = Quatro cinco ;
valor de retorno = snprintf ( buff_size, MAX_BUFSIZE, 'Olá %s usuários, vamos ler %d artigos sobre bash' ,str, artigos ) ;
se ( valor de retorno > 0 && valor de retorno < MAX_BUFSIZE )
{
cout << buff_size << fim ;
cout << 'Número de caracteres escritos = ' << valor de retorno << fim ;
}
outro
cout << 'Erro ao gravar no buffer' << fim ;
retornar 0 ;
}
No código acima, definimos o tamanho máximo do buffer para 60. Isso significa que o código não aceitará caracteres com mais de 60. Usamos o snprintf() para gerar uma string com 56 caracteres e ela será exibida no terminal de saída. Caso seus caracteres inseridos sejam maiores que 60, o programa apresentará um erro.
Conclusão
Demonstramos o protótipo, os parâmetros, os valores de retorno e o funcionamento do C++ snprintf() função que grava uma string formatada em um buffer de string de caracteres. Descrevemos um exemplo com uma compreensão completa de snprintf() neste guia.