-1
我使用stringstream來解析配置文件。 C++整型變量在分配文本文件中的值時工作正常。但是,當我將配置文件中的讀取值分配給C++ int16_t變量時,它只是分配一個不同的值。我不知道發生了什麼事。將配置文件中的變量賦給C++中的int16_t變量
這是我的代碼:
void parseConfigurationFile(){
//Variables
int16_t int16_tValue;
int firstIntegerValue;
//File parsing code
std::ifstream fin(configFileName);
std::string line;
std::istringstream sin;
while (std::getline(fin, line))
{
sin.str(line.substr(line.find(":")+1));
if (line.find("firstIntegerValue") != std::string::npos) {
sin >> firstIntegerValue;
}
else if (line.find("int16_tValue") != std::string::npos) {
sin>>int16_tValue;
}
}
我的配置文件看起來像如下:
firstIntegerValue : 12
int16_tValue : 55555
可能是什麼可能去錯在這裏?我無法弄清楚這一點。
我建議在製作一個istringstream實例之前使用'find'來找到':'。 –
你的'if-else'階梯缺少最後的'else'子句。 –
調試器。使用調試器。調試器將允許您單步執行代碼,*在變量中觀察*值。調試程序通常比正確發佈到StackOverflow並等待某人檢查您的代碼或調試您的代碼更快。請使用調試會話的結果編輯您的文章(指出哪個語句導致問題,預期行爲和實際行爲)。 –