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.