2016-07-30 2 views
-1

"Volume"이라는 변수가 있다고 가정합니다. 이제 설정에 파일이 있습니다. 모든 설정은 다음과 같습니다. ": 이제이 파일을 위에서 아래로 살펴보고 같은 이름의 변수에 설정을 저장하려고합니다.문자열을 변수 이름으로 사용 (C++)

eG"Volume : 76 " 이 프로그램이 변수 "Volume"에 "76"을 쓰도록하고 싶습니다. 문자열만으로 올바른 변수를 얻으려면 프로그램을 어떻게 만들 수 있습니까?

코드가 없습니다.

+1

C++에서 변수 이름은 컴파일러의 기호이며 실제 문자열이 아닙니다. – bisthebis

+1

구문 분석, 구문 분석 및 구문 분석. –

답변

2

컴파일시에 이름이 존재해야하지만 파일을 읽는 것은 런타임이므로 변수를 직접 사용할 수 없습니다.

std :: map을 사용할 수 있습니다. 각 설정은 키가되고 값은 읽혀집니다.

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

그러나 값 (이 경우 "76")도 문자열입니다. 다른 유형은 직접 사용할 수 없습니다. 내가 생각하기에, 타입 지우개로 가능하다. 그러나 정말로 진보 된 것 (그리고 그것에 익숙하지 않다!).

+1

숫자를 설정으로 저장하기 때문에 "Std :: map "을 사용할 수 있습니다. 물론 – D4RKS0UL23

+0

예. 필요한 모든 것은 하나의 유형을 가지고 있으며 모든 설정에 해당 유형이 있습니다. 모든 값 유형이 파생 된 기본 클래스를 사용하여 다형성 포인터 (unique_ptr)를 저장할 수 있습니다. 그러나 숫자 만 필요하면 잘 작동합니다. –

+0

설정이 숫자가 아니어야하는 이유를 모르겠습니다. Windows, Fullscreen 사이에서 선택해야한다면 숫자 0과 1 (또는 1과 2)도 사용할 수 있습니다. – D4RKS0UL23

관련 문제