C ++ Sprintf

C ++ Sprintf

Na linguagem de programação C ++, você encontrará muitas conversões e copiará dados de um arquivo ou uma variável para outra, como a conversão de int em string, matriz de caracteres para string, etc. Um tipo semelhante de conversão será discutido aqui em que os caracteres das cordas do formato são gravados para o buffer. E os valores serão obtidos através dessa variável buffer. Isso é feito através de uma função em C ++ conhecido como sprints ().

Sintaxe do sprintf ()

# int sprintf (buffer char*, const char* variável);

Uma variável é um valor de entrada que queremos armazenar no buffer. A função Sprintf, quando executada, retorna o número de caracteres presentes no buffer. Caso contrário, um valor negativo é retornado. O tamanho do buffer é declarado no momento da inicialização; O tamanho deve ser grande o suficiente para armazenar uma corda.

Implementação de Sprintf ()

Para entender o funcionamento da Sprintf, consulte os exemplos abaixo que contêm diferentes métodos de uso dessa função no código -fonte de C ++ para que o compilador possa executá -lo no terminal Ubuntu.

Exemplo 1

A implementação do sprintf contém um exemplo de amostra aqui. A principal função estará envolvida no cálculo do valor do PI, um valor absoluto em matemática. Para esse fim, temos que usar a biblioteca de matemática que contém todos os recursos das operações de matemática. A segunda biblioteca é stdio.H, que também é um arquivo de cabeçalho essencial necessário para executar qualquer programa C ++.

#incluir

Uma matriz de caracteres é inicializada com um tamanho fixo no programa principal. A variável será usada na função sprint () como um parâmetro. Como o sprint é usado para copiar ou escrever a sequência formatada no buffer da sequência de caracteres, dentro da função, usaremos a matriz de objetos da variável de caractere e a calculadora de matemática do PI.

# Sprint (str, "valor de pi = %f", m_pi);

Isso trará o valor de pi. O valor do buffer da função de sprint é usado para exibir o valor. Como neste exemplo, STR é usado.

O código é compilado e executado por um compilador de C ++, que é um compilador G ++. Este compilador usa um arquivo de entrada que possui o código-fonte que você salvou, um arquivo de saída no qual queremos exibir os resultados usando '-o' no comando.

$ g ++ -o arquivo de arquivo.c
$ ./arquivo

Na execução, você verá que o valor do PI é exibido através da função de sprint.

Exemplo 2

Esta é outra instância da função sprintf (). Uma variável de caractere é inicializada para converter a string. Outra variável do tipo inteiro também é usada aqui, para a qual um valor inteiro é atribuído. Ambas as variáveis ​​serão usadas no parâmetro da função de sprint. A função sprintf imprimirá minha frase de idade e a variável etária será convertida na variável buffer.

# Sprintf (buffer, "minha idade é %d", idade);

Para exibir o valor convertido, exibiremos o conteúdo do buffer usando um buffer.

Quando o arquivo for executado, você verá que o buffer exibirá o valor inicializado como um valor inteiro.

Exemplo 3

Vamos verificar se todos os elementos devem estar presentes no buffer. No programa principal, duas variáveis ​​de diferentes tipos de dados, um número inteiro e um personagem, são criadas e inicializadas pelo nome e pela idade. Uma variável do tipo inteiro é usada aqui para o objetivo de contagem de caracteres. Aqui vamos escrever a combinação das variáveis ​​para buffer variáveis ​​e strings. A combinação será feita de tal maneira que uma frase é escrita na declaração de cout, juntamente com variáveis ​​'%s' e '%d'; Esses dois conterão os valores das variáveis ​​inteiras e de caracteres inicializadas anteriormente.

Dessa forma, a string e as variáveis ​​serão escritas coletivamente para a variável buffer. Agora a função de contagem será usada com a chamada de função. Ele armazenará o valor que será devolvido da função Sprint.

# Count = sprint (buffer, 'eu sou %s e eu tenho %d anos, nome, idade);

Após a função, o buffer é exibido para mostrar o valor escrito nele. Além disso, a função de contagem contava o total de caracteres que serão formados quando as cordas e ambas as variáveis ​​forem combinadas. Agora vamos executar o código -fonte acima.

Você verá que a função Sprint exibiu a mensagem com o nome e a idade incorporada dentro da frase. O contador também exibiu o número total de caracteres, incluindo todos os caracteres de cordas, tanto as variáveis ​​quanto o espaço entre cada palavra.

Exemplo 4

Este exemplo funciona na mesma abordagem que usamos para o exemplo anterior; Todas as cordas da declaração e as variáveis ​​são combinadas com a escrita na variável buffer. Uma matriz buffer de caracteres é criada e o tamanho é mencionado aqui. Duas variáveis ​​do tipo inteiro armazenarão os valores e uma terceira variável calculará a soma dos valores presentes nas duas variáveis. Agora iremos incorporar todas as variáveis ​​na string.

# Sprint (buffer, "soma de %d e %d é %d", a, b, c);

A função Sprint usará as três variáveis ​​aleatórias para atribuir os valores. Uma coisa que deve ser mantida em mente é que a ordem das variáveis ​​deve ser a mesma. O valor da soma será armazenado na variável buffer em vez de imprimir no stdout.

Executar o código; Os valores são anexados com a string através do sprint.

Exemplo 5

O exemplo lida com o envolvimento do usuário. Em vez de tomar as variáveis ​​como entrada e a instrução String no momento da execução do sprint, tomamos a string como uma entrada e o valor virá do usuário. Uma matriz original de caracteres de string é introduzida aqui que contém uma string. Enquanto um buffer também é inicializado com o tamanho específico, o sistema solicitará ao usuário que insira o valor no número inteiro; Este valor será então usado para ser incorporado com a string que tomamos.

Depois que o valor for inserido, isso será usado agora na função de sprint.

# Sprint (buffer, "%s_%d", original, n);

A declaração original e o valor inteiro serão concatenados através do sublinhado, em vez de ter um espaço entre eles. Agora execute a declaração para visualizar os resultados.

Depois de inserir o valor pelo usuário, a instrução será exibida como a combinação de uma string e um valor inteiro.

Conclusão

O método sprint () armazena a corda formatada no buffer. Todos os valores são escritos no buffer separadamente ou coletivamente. Todos esses casos são explicados neste artigo através de exemplos básicos implementados em C++. A verificação do valor do buffer pode ser obtida através da função do contador que conta os caracteres da string. Isso pode ser aplicado a qualquer programa de sprint.