Как вставить значение строки как аргумент функции?
Приветствую всех, имеется необходимость вставить значение строки как аргумент функции, что делать? Допустим, имеется код с функцией систем, которая приняла аргумент в виде команды на смену цвета(1 символ - консоли, 2 - текста).
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
system("color FC");
return 0;
}
Так вот, как я могу передать этой функции значение строки, а не вписывать в ручную? Заранее спасибо
DimaIs: Погадаем на кофейной гуще. Есть что-то такое:
char str[] = "1 + 2";
int res = (#str);
Где #str - получение значения переменной str.
Если нужно такое, типа калькулятора - нужно писать свой обработчик, или использовать чужой. Если что-то посложнее, например конструкции С++ - vector<int>(123)[0] или даже просто printf("abc") - уже нужно вызывать компилятор.
Проблема в том, что в момент работы программы уже не работает та часть компилятора, что ответственная за парсинг, а ответственная за преобразование syntax tree -> assembly тем более.
Очень надеюсь, что Вам нужен калькулятор. Иначе будет сложно :)
DimaIs: Можете подробно описать, что именно делает ваша программа и причём тут system? Это утилита для смены цвета консоли командой? Так не проще ли самому сменить? И пользователь сам вправе решать, как будет выглядеть окно консоли, разве нет?
Антон Жилин: данная программа не делает ничего, просто как пример. Нужно для реализации разных цветов в игре(тетрис). Да, она меняет цвет консоли и цвет текста.
Антон Жилин: я не смогу сразу определить, какой цвет где подходит, проще для этих целей сделать переменную и, если вдруг, поменять значение только в ней, а не по всей проге
1. В строковой переменной или строковом буфере собрать тело команды, экранируя параметры, если это нужно.
2. Если это обёрнутый string, преобразовать в const char* — и пошёл.