試圖將二進制輸入字符串轉換爲整數的向量。我想這樣做而不使用內置的C++函數。這裏是代碼片段和執行錯誤(編譯好)。將二進制字符串轉換爲整數
示例輸入: 「1011 1001 1101」
應儲存在載體作爲整數11,9和13
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
string code,key;
vector<int>digcode;
vector<int>ans;
cout<<"Enter binary code:\n";
getline(cin,code);
cout<<"Enter secret key:\n";
cin>>key;
for(int i=0;i<code.length();)
{
int j=2, num=0;
while (code[i]!=' '&&i<code.length())
{
num*=j;
if (code[i]=='1')
num+=1;
i++;
}
cout<<num<<" ";
digcode.push_back(num);
if(code[i]==' '&&i<code.length())
i++;
}
}
錯誤消息: 「調試斷言失敗!」 「表達式:字符串下標超出範圍」
除最後一個號碼之外的所有數字都被打印並存儲。我已經通過for和while循環來尋找下標變得太大,但沒有太多運氣的地方。
任何幫助表示讚賞!謝謝。
不斷言告訴你哪一行錯誤發生呢?如果你有這些信息,你爲什麼要保密?這是謎題中最重要的一部分。 –
如果你不反對使用C函數,你可以檢查'strtol'。 –