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

311
03 июля 2022, 00:40

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

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

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

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

Answer 1

В С++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.

Answer 2

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

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

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

READ ALSO
Как записать вектор в бинарный файл?

Как записать вектор в бинарный файл?

В чём разница между следующими записями? Как правильно записать вектор в бинарный файл?

239
Я хочу сменить терминал для вывода codeblocks (cmd) на windows Terminal? Как это сделать? Свойство заблокировано(

Я хочу сменить терминал для вывода codeblocks (cmd) на windows Terminal? Как это сделать? Свойство заблокировано(

CodeBlocks по умолчанию все выводит в cmd но я хочу чтобы он выводил сообщения в более удобный для меня терминал - Windows Terminal, но свойство смены терминала...

289
Исправить ошибку (структуры)

Исправить ошибку (структуры)

Всем привет при компиляции нижеуказанного кода выскакивает ошибка сегментации, не могу понять почему она тут имеет место быть, и как её исправить,...

197
Как описать max_element у вектора класса?

Как описать max_element у вектора класса?

Есть класс CarShop, содержащий в себе следующий переменные:

277