Как вставить переменные в строку?

Нужно сдеать так:

cout << "My name is {name}. I am {age}";, где name и age - изменяемые переменные.

В C# перед кавычками нужно добавить $, в Python - f.

А как это активировать в C++?


Ответы (2 шт):

Автор решения: user7860670

В С++20 можно делать похожим образом:

#include <iostream>
#include <format>
 
int main()
{
    auto const & name{"Frob"};
    auto const age{42};
    ::std::cout << ::std::format("My name is {}. I am {}", name, age);
}

Ну а пока можно использовать аналогичные варианты из сторонних библиотек, тот же {fmt} или folly.

→ Ссылка
Автор решения: Andrej Levkovitch

В стандартной библиотеке с++ такая возможность внедрена только в 20-ом стандарте - функция std::format. Так как это еще очень новый и слабо поддерживаемый стандарт, то в вашем случае есть два варианта:

  1. использовать сишную функцию printf (или sprintf если вам нужно получить в результате строку а не вывод)

  2. использовать boost::format - очень хорошая либа как раз для этих целей

→ Ссылка