char text[] = R"() C++ как добавить переменную

есть кусок кода

char text[] = R"(
{
    "chtoto": {
        "Blabla":30,
    }
}
    )";

Тут Массив text хранит данные для последующей записи в .json файл как реализовать ввод переменных(к примеру в место 30 поставить переменную в которую будет приходить значение) или же другой способ, чтоб можно было сделать вывод в .json файл


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

Автор решения: Harry
char text[120];
int N = 40;
sprintf(text,R"(
{
    "chtoto": {
        "Blabla":%d,
    }
}
    )", N);

Устроит такое?

Но лучше все же со строками работать, там проще — не надо думать о размере буфера, например. А если версия компилятора позволяет, то использовать форматирование строк.

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

В C++ используются потоки для формирования строк

int main() {
    int num_data;
    std::cin >> num_data;
    std::ostringstream text_stream;
    text_stream << R"({
    "chtoto": {
        "Blabla":)"
<< num_data
<< R"(,
    }
})";
    std::cout << text_stream.str();
    return 0;
}

Ссылка на код

→ Ссылка