我正在編寫一個接受十六進制值文本文件的程序。我將這些十六進制值存儲在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