Задать вопрос
@SaddledSharp
Кодер. Увлекаюсь информационной безопасностью.

Как вернуть строку char* передав ей переменные?

Всем привет! Я столкнулся с такой проблемой, начну с начала:
Я создаю программу которая будет генерировать начальный код ботов для ВК по PHP, Python.
Итак: с какой проблемой я столкнулся: при создании файла, мне нужно записать туда код определенного бота с определённым форматом. К примеру я выбрал - 1. Создать бота для группы 2. Бот на Python
Далее у меня идёт функция, в которую передаётся для чего создаётся бот, и с каким расширением, вот код:
char* getCode(QString mode, QString script) {
    // <...> Deleted
    else if(mode == "b" && script == "py") {
        return
                "import vk_api\n"
                "import requests\n"
                "session = requests.Session()\n"
                "login, password = '%s', '%s'"               // Problem
                "";
    }
// Если выбран бот для Группы( g ) и на php ( Там выше QString переменные в коде, но я их суда не добавил )
    else if (mode == "g" && script == "php") {
        return  "<?php\n"
                "\n"
                "// Thanks for using BotHelper\n"
                "// Author: Danil Romanov (vk: *******) \n"
                "\n"
                "include \"vk_api.php\";\n"
                "const VK_KEY = \"%s\";\n"                 // Problem \ Проблема
                "const ACCESS_KEY = \"%s\";  \n"       // Problem \ Проблема
                "const VERSION = \"5.81\";\n"
                "$vk = new vk_api(VK_KEY, VERSION); \n"
                "$data = json_decode(file_get_contents('php://input'))\n"
                "if (data->type == \"confirmation\") {\n"
                "   exit(ACCESS_KEY);\n"
                "}\n"
                "$vk->sendOK();\n"
                "// Enter this your code . . .";
    }
    else {
        QMessageBox::information(0, "Error", "Ошибка: неправильно переданы переменные в функцию\nПожалуйста, сообщите создателю программы об ошибке\nВК: *****");
    }
}

Не обращайте внимание, я там удалил вначале потому что я еще не написал код. Так вот - как видите код для ботов почти готов, но вот проблема(я пометил комментарием), мне требуется передать в возвращающую строку - текст из полей.
Я пытался делать так:
// Если выбран бот на Питоне(py) и для беседы(b) ( Там выше QString переменные в коде, но я их суда не добавил )
else if(mode == "b" && script == "py") {
        return
                "import vk_api\n"
                "import requests\n"
                "session = requests.Session()\n"
                "login, password = '%s', '%s'", ui->lineEdit_7->text()  // Не видит

Но о чём речь, он даже не видит префикс ui.
Я надеюсь, что вы поняли суть моей проблемы. Пытался максимально просто разжувать и показать код.
Еще короче: Мне нужно вернуть строку с кодом и передать туда определённые значения из LineEdit. Коды выше.
Помогите, программа получилась красивая, полезная, и годная. Не хочу бросать на таком тупом моменте.
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Вот так это делается
QString i;           // current file's number
QString total;       // number of files to process
QString fileName;    // current file's name

QString status = QString("Processing file %1 of %2: %3")
                .arg(i).arg(total).arg(fileName);

Учитывая, что у вас куча строк, рекомендую воспользоваться многострочным литералом:
const auto text=QString(R"(
My program is %1
it's written by %2
for %3
)").arg("good","nice gay","fun and profit");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы