В языке программирования C++ вы столкнетесь со многими преобразованиями и копированием данных из одного файла или одной переменной в другой, например, преобразование из int в строку, массив символов в строку и т. д. Аналогичный тип преобразования будет обсуждаться здесь, в котором символы из строк формата записываются в буфер. И значения будут получены через эту переменную буфера. Это делается с помощью функции C++, известной как sprints().
Синтаксис sprintf()
# int sprintf (char* buffer, const char* variable);
Переменная — это входное значение, которое мы хотим сохранить в буфере. Функция sprintf при выполнении возвращает количество символов, присутствующих в буфере. В противном случае возвращается отрицательное значение. Размер буфера объявляется во время инициализации; размер должен быть достаточно большим, чтобы хранить в нем строку.
Реализация sprintf()
Чтобы понять работу sprintf, см. приведенные ниже примеры, содержащие различные методы использования этой функции в исходном коде C++, чтобы компилятор мог выполнить ее в терминале Ubuntu.
Пример 1
Реализация sprintf содержит образец примера здесь. Основная функция будет задействована в вычислении значения числа пи, абсолютного значения в математике. Для этого мы должны использовать математическую библиотеку, содержащую все возможности математических операций. Вторая библиотека — stdio.h — также важный заголовочный файл, необходимый для выполнения любой программы на C++.
#include <math.h>
Массив символов инициализируется с фиксированным размером в основной программе. Переменная будет использоваться в функции sprint() в качестве параметра. Поскольку sprint используется для копирования или записи форматированной строки в буфер символьной строки, внутри функции мы будем использовать массив объектов символьной переменной и математический калькулятор числа пи.
# Sprint (str, «value of pi = %f», M_PI);
Это принесет значение PI. Значение буфера функции спринта используется для отображения значения. Как и в этом примере, используется str.
Код компилируется и выполняется компилятором C++, который является компилятором g++. Этот компилятор использует входной файл с сохраненным вами исходным кодом, выходной файл, в котором мы хотим отобразить результаты, используя «-o» в команде.
$ g++ —o file file.c
$ ./file
При выполнении вы увидите, что значение числа пи отображается с помощью функции спринта.
Пример 2
Это еще один экземпляр функции sprintf(). Символьная переменная инициализируется для преобразования строки. Здесь также используется другая переменная целочисленного типа, которой присваивается целочисленное значение. Обе переменные будут использоваться в параметре функции sprint. Функция sprintf напечатает предложение моего возраста, а переменная возраста будет преобразована в переменную буфера.
# Sprintf (buffer, «My age is %d», age);
Чтобы отобразить преобразованное значение, мы будем отображать содержимое буфера с помощью буфера.
Когда файл будет выполнен, вы увидите, что буфер отобразит инициализированное значение как целочисленное значение.
Пример 3
Мы проверим, что все элементы должны присутствовать в буфере. В основной программе создаются две переменные с разными типами данных, одна целочисленная и одна символьная, которые инициализируются по имени и возрасту. Переменная целочисленного типа используется здесь для подсчета символов. Здесь мы запишем комбинацию переменных для буферизации переменных и строк. Комбинация будет выполнена таким образом, что предложение будет записано в операторе cout вместе с переменными ’%s’ и ’%d’; эти два будут содержать значения как целочисленных, так и символьных переменных, инициализированных ранее.
Таким образом, и строка, и переменные будут вместе записываться в переменную буфера. Теперь функция count будет использоваться с вызовом функции. В нем будет храниться значение, которое будет возвращено функцией sprint.
# Count = sprint (buffer, ‘ I am %s and I am %d years old, name, age);
После функции отображается буфер, чтобы показать записанное в него значение. Кроме того, функция подсчета подсчитала общее количество символов, которые будут сформированы при объединении строк и обеих переменных. Теперь мы выполним приведенный выше исходный код.
Вы увидите, что функция спринта отобразила сообщение с именем и возрастом, встроенными в предложение. Счетчик также отображал общее количество символов, включая все символы строк, как переменные, так и пробелы между каждым словом.
Пример 4
В этом примере используется тот же подход, что и в предыдущем примере; все строки в операторе и переменные объединяются с записью в переменную буфера. Создается массив буфера символов, и здесь указывается его размер. Две переменные целочисленного типа будут хранить значения, а третья переменная будет вычислять сумму значений, присутствующих в двух переменных. Теперь мы встроим все переменные в строку.
# Sprint (buffer, «sum of %d and %d is %d», a,b,c );
Функция спринта будет использовать три случайные переменные для присвоения значений. Следует иметь в виду, что порядок переменных должен быть одинаковым. Значение суммы будет сохранено в переменной буфера вместо вывода через стандартный вывод.
Выполнить код; значения прикрепляются строкой через sprint.
Пример 5
Пример касается участия пользователей. Вместо того, чтобы принимать переменные в качестве входных данных и строковый оператор во время выполнения спринта, мы взяли строку в качестве входных данных, и значение будет поступать от пользователя. Здесь представлен исходный массив строковых символов, содержащий строку. Поскольку буфер также инициализируется с определенным размером, система попросит пользователя ввести значение в виде целого числа; это значение затем будет использоваться для встраивания в строку, которую мы взяли.
После ввода значения оно теперь будет использоваться в функции спринта.
# Sprint (buffer, «%s_%d», original, n);
И исходный оператор, и целочисленное значение будут объединены символом подчеркивания, а не пробелом между ними. Теперь выполните оператор, чтобы просмотреть результаты.
После ввода значения пользователем оператор будет отображаться как комбинация строки и целочисленного значения.
Заключение
Метод sprint() сохраняет отформатированную строку в буфер. Все значения записываются в буфер по отдельности или вместе. Все эти случаи объясняются в этой статье на базовых примерах, реализованных на C++. Проверка значения буфера может быть получена с помощью функции счетчика, которая подсчитывает символы строки. Это можно применить к любой программе спринта.