função snprintf em c

função snprintf em c
Na função snprintf (), queremos aprender a formatar os dados. A formatação de dados é essencial quando estamos escrevendo algum status do processo ou qualquer módulo em um arquivo, e outro módulo pode acessar que. Para esse fim, queremos compartilhar esses dados entre os módulos. Nesse caso, queremos formatar nossos dados para que outros módulos possam entendê -los da mesma maneira.

protótipo de função snprintf ()

A função snprintf () é um tipo de dados predefinido. Sua definição é escrita em um arquivo de cabeçalho padrão em C denominado arquivo de cabeçalho.

Características da função snprintf ()

int snprintf (char *st, max_size, const char *formato,… .);

Aqui, usamos vários parâmetros, como a função desses parâmetros:

  • *ST é um buffer que pode conter a string.
  • max_size: maior número de caracteres que um buffer pode conter.
  • Formato que contém uma string e outras especificações como a função printf ().
  • A função snprintf () retorna um valor inteiro, e seu trabalho é contar o número de caracteres dentro do buffer.

Exemplo de programação 1

Aqui, veremos a implementação da função snprintf ():

#incluir
#incluir
int main ()

char buff_max [15]; // declarando uma string
int x = 15;
duplo y = 26.5;
snprintf (buff_max, 14, "Examine o teste de transbordamento, os valores de x = %d e y = %lf", x, y); // Usos da função snprintf ()
printf (" %s \ n", buff_max); // imprima o valor da string
retornar 0;

Saída

Explicação

Neste exemplo de programação, usaremos a função snprintf () para formatar uma string. Aqui, declaramos uma sequência chamada "buff_max", que contém no máximo 15 caracteres, exceto que declaramos um tipo inteiro variável x e tipo duplo variável y.

Agora, se usarmos a função snprintf (), devemos passar alguns argumentos dentro de seus parênteses. Os argumentos são o primeiro de todas as cordas. Temos que mencionar o tamanho que o buffer pode acumular; O terceiro parâmetro é a sequência formatada e depois a variável.

A vantagem de usar a função snprintf () é que apenas 14 caracteres podem ser impressos e o restante dos caracteres é ignorado. O programa estará seguro e o programa não está travando.

Exemplo de programação 2

Neste exemplo de programação, veremos outro exemplo da função snprintf ():

#incluir
#incluir
#Define max_buff 1024
#Define size_name (15)
typedef struct

nome de char [size_name]; // declarando uma string
não assinado int rollno;
marcas duplas;
ESTUDANTE ; // Criando o tipo de dados definido pelo usuário
int main (Intargc, char *argv [])

buffer de char [max_buff] = 0;
Aluno s1 = .name = "Avishek" , .rollno = 6 , .Marcas = 77.17;
snprintf (buffer, sizeof (buffer), " %s %d %lf", s1.Nome, S1.Rollno, S1.marcas); // Usos da função snprintf ()
printf ("buffer = %s \ n", buffer);
retornar 0;

Saída

Explicação

Neste exemplo de programação, definiremos o nome da estrutura ESTUDANTE. Os membros de dados do ESTUDANTE são nome, rolo não, e marcas. Dentro da função main (). Declaramos uma variável S1 que é o tipo de dados do aluno. Se quisermos imprimir o valor de cada determinar a variável S1, usaremos a função snprintf (). Os parâmetros do snprintf são buffer, tamanho do buffer, formato da string e todos os membros de dados que precisam ser formatados. Se imprimirmos o buffer, a saída será mostrada ao monitor como saída formatada.

Exemplo de programação 3

Vamos dar outro exemplo importante da função snprintf () e como funciona.

#incluir
#incluir
#incluir
#Define size_buffer 1024
#Define size_name (20)
#define format_string "(%s,%d,%0.2lf), "
#Define size_buffer 1024
#Define size_name (20)
#define format_string "(%s,%d,%0.2lf), "
typedef struct

nome de char [size_name];
não assinado int rollno;
dupla porcentagem;
PESSOA ; // Definindo uma estrutura.
int main (Intargc, char *argv [])

char buffer [size_buffer] = 0; // declarando um buffer.
Person student_data [] = .nome = "raul", .rollno = 1020, .Porcentagem = 72.30334, \
.nome = "Paul", .rollno = 1021, .Porcentagem = 86.3456 \
; // criando uma variedade de estrutura.
int num_students = sizeof (student_data)/sizeof (pessoa);
int pos = 0;
para (int i = 0; i
POS += snprintf (buffer +pos, sizeof (buffer), format_string, student_data [i].Nome, Student_data [i].Núm. da lista,
Student_data [i].porcentagem);

printf ("buffer = [ %s] \ n", buffer);
retornar 0;

Saída

Explicação

Aqui, pegamos uma variedade de estruturas e vemos o processo de função snprintf (). Nós definimos uma estrutura chamada PESSOA, e dentro da função principal (), declararemos uma matriz das estruturas do PESSOA Tipo de dados e atribua algum valor a esta matriz. Podemos usar um loop para o balcão. Por fim, imprimiremos todo o buffer com todos os dados. Estamos continuamente iterando sobre essa variedade de estruturas. Agora, salvamos todos os dados nesse buffer, dependendo da posição.

Pela primeira vez, o primeiro aluno veio e escreverá alguns dados sobre esse buffer. Então, o valor da posição mudará e o buffer escreverá para essa posição. É assim que funciona.

Vantagem de usar a função snprintf ()

A vantagem de usar a função snprintf () é que suponha que o buffer esteja transbordando pelo personagem do seu tamanho máximo. O programa estará seguro para evitar um acidente. O restante dos caracteres é ignorado pela função snprintf (), que executará o programa.

Conclusão

No idioma C, semelhante à função printf (), outra função chamada snprintf () é usada para formatar a string. Para resolver o problema de usar a função sprintf (), o snprintf () é trazido à biblioteca C para tornar o programa mais seguro e elegante. Neste artigo, discutimos a função snprintf () nos exemplos fornecidos.