Функция sprintf
Функция sprintf форматирует и записывает данные в символьный массив (строку) в соответствии со строкой формата. Первым параметром функция принимает указатель на буфер, куда будет записан результат. Вторым параметром - строку формата, которая определяет, как именно будут отформатированы данные. Последующие параметры - это значения, которые подставляются в строку формата в порядке их следования. Функция возвращает количество записанных символов, не считая завершающий нулевой символ.
Синтаксис
int sprintf(char* buffer, const char* format, ...);
Пример
Давайте отформатируем строку с числами и запишем результат в буфер:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char buffer[50];
int a = 10;
int b = 20;
sprintf(buffer, "%d + %d = %d", a, b, a + b);
cout << buffer << endl;
return 0;
}
Результат выполнения кода:
"10 + 20 = 30"
Пример
Давайте отформатируем строку с плавающей точкой и ограничим количество знаков после запятой:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char buffer[50];
double pi = 3.14159265;
sprintf(buffer, "Pi = %.2f", pi);
cout << buffer << endl;
return 0;
}
Результат выполнения кода:
"Pi = 3.14"
Пример
Давайте объединим строку и число в один буфер:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
char buffer[50];
const char* str = "abcde";
int num = 12345;
sprintf(buffer, "%s-%d", str, num);
cout << buffer << endl;
return 0;
}
Результат выполнения кода:
"abcde-12345"