バイナリ入力の文字列をintのベクトルに変換しようとしています。組み込みのC++関数を使用せずにこれを実行したいと思います。これがコードのスニペットと実行エラーです(正常にコンパイルされます)。
入力例: "1011 1001 1101"
ints 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ループをトレースしましたが、あまり運がありませんでした。
どんな助けでも大歓迎です!ありがとう。