有沒有更好的方式讓我讀取文件中的值並相應地設置它們?我能以某種方式從文件中讀取一個變量名並在程序中相應地設置它嗎?例如,讀取BitDepth並將其設置爲文件中指定的值?因此,我不必檢查這一行是否是BitDepth,然後將bit_depth設置爲隨後的值?更有效的方式來讀取文件和設置變量?
std::ifstream config (exec_path + "/Data/config.ini");
if (!config.good()) SetStatus (EXIT_FAILURE);
while (!config.eof()) {
std::string tmp;
std::getline (config, tmp);
if (tmp.find ("=") != 1) {
if (!tmp.substr (0, tmp.find (" ")).compare ("BitDepth")) {
tmp = tmp.substr (tmp.find_last_of (" ") + 1, tmp.length());
bit_depth = atoi (tmp.c_str());
} else if (!tmp.substr (0, tmp.find (" ")).compare ("WindowWidth")) {
tmp = tmp.substr (tmp.find_last_of (" ") + 1, tmp.length());
screen_width = atoi (tmp.c_str());
} else if (!tmp.substr (0, tmp.find (" ")).compare ("WindowHeight")) {
tmp = tmp.substr (tmp.find_last_of (" ") + 1, tmp.length());
screen_height = atoi (tmp.c_str());
}
}
}
的config.ini
[Display]
BitDepth = 32
WindowWidth = 853
WindowHeight = 480
關鍵字到整數(或指向整數的指針)的映射是可能的。不一定更好,但仍然是一種可能性。儘管如此,不會爲三個項目做到這一點。 – stefan 2013-03-18 11:09:04