2016-07-30 793 views
-1

假設我有稱爲「卷」的變量,例如。我現在有一個包含Settings的文件。每個設置看起來像這樣:「: 我現在從上到下瀏覽這個文件,並且我希望程序將設置存儲在一個具有相同名稱的變量中使用字符串作爲變量名稱(C++)

如果存在」Volume:76「 ,我想讓程序在變量「Volume」中寫入「76」。我怎樣才能讓程序得到正確的字符串變量?這是可能的嗎?

還沒有代碼,因爲我還沒有開始做這個工作呢。我這件事讓想法。

+1

在C++中,變量名稱是編譯器的符號,不是實際的字符串。 – bisthebis

+1

解析,解析和解析。 –

回答

2

不能直接使用變量,因爲該名稱必須在編譯時存在的,但閱讀文件是運行時。

雖然你可以使用std :: map。每個設置都將是一個鍵,並將讀取該值。

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

但是,值(在本例中爲「76」)也是字符串。你不能直接使用不同的類型。 我認爲,它可能與類型擦除,但那真的先進(和IAM不流利!)。

+1

因爲我會將設置存儲爲數字,所以我可以使用「Std :: map 」我當然想 – D4RKS0UL23

+0

。所有必要的是,該值有一種類型,並且所有設置都有它們。 您可以使用基類,其中派生每個valuetype,並保存一個多態指針(unique_ptr)。但是如果你只需要數字,那也可以。 –

+0

我不知道爲什麼一個設置不應該是一個數字。如果你必須在Windows和Fullscreen之間選擇,你可以使用數字0和1(或1和2) – D4RKS0UL23