我正在编写一个接受十六进制值文本文件的程序。我将这些十六进制值存储在vector<string>
中,然后使用stol
将十六进制字符串转换为整数,然后将其存储在新的vector<int>
中。从十六进制字符串转换为int时出现C++错误
vector<string> flir_times;
vector<int> flir_dec;
for(int i = 0; i < flir_times.size() ; i++){
int x = stol(flir_times[i], nullptr, 16);
flir_dec.push_back(x);
cout << flir_dec[i] << endl;
}
该方案本来是工作;但今天出于某种原因,它似乎并没有正确地转换一些新的十六进制值。下面是需要转换的十六进制值的一小段:
这些是该方案应把它们转换成数值:
然而,当我运行我的程序将十六进制值转换为大负数,然后崩溃。有谁知道什么可能导致程序不能正确地转换十六进制数字然后崩溃?
如果用来工作,你确认输入文件之前具有相同的语法? –
是的,早先在代码中我得到用户输入的文本文件目录,所以我肯定该文件是正确的 – oodan123