2016-07-30 3 views
-1

Предположим, что у меня есть переменная, называемая, например, «Volume». Теперь у меня есть файл с настройками. Все настройки выглядят следующим образом: ": Теперь я просматриваю этот файл сверху вниз, и я хочу, чтобы программа сохраняла параметр в переменной с равным именем.Использование строки в качестве имени переменной (C++)

eG, если есть" Volume: 76 " , Я хочу, чтобы программа записывала «76» в Variable «Volume». Как я могу заставить программу получить правую переменную только по строке? Возможно ли это?

Пока еще нет кода, так как я еще не начали над этим работать. Я думал об этом.

+1

В C++ имена переменных являются символами для компилятора, а не фактическими строками – bisthebis

+1

Анализ, разбор и анализ. –

ответ

2

Вы не можете использовать переменные напрямую, так как имя должно существовать во время компиляции, но чтение файла - это время выполнения.

Вы можете использовать std :: map. Каждый настройка будет ключом, а значение будет читать.

std::map<std::string, std::string> settings; 
settings["volume"] = "76"; 

Но значения («76» в данном случае) будут строки, а также. Вы не можете использовать разные типы напрямую. Я думаю, его можно с типом стирать, но это действительно продвинуто (и я не бегло с ним!).

+1

Поскольку я бы сохранил параметр как число, я мог бы использовать «Std :: map ». Я думаю, – D4RKS0UL23

+0

да, конечно. Все, что необходимо, это то, что значение имеет один тип, и все настройки имеют их. Вы можете использовать базовый класс, в котором вызывается каждый valuetype, и сохранить для него полиморфный указатель (unique_ptr). Но если вам нужны только цифры, это тоже сработает. –

+0

Я не знаю, почему установка не должна быть числом. Если вам нужно было выбирать между Windows, Fullscreen вы могли бы использовать также цифры 0 и 1 (или 1 и 2) – D4RKS0UL23

Смежные вопросы