まず、スペースで区切られた 2 つの整数 N と Q を読み取る必要があります。私はcinを使ってこれをやっています。次に、次の 2 行に、それぞれ N 桁の 2 つの 2 進数が続きます。getchar() を使用してこれらの数値を少しずつ読み取って int ベクトルに入れようとしていますが、ガベージ値を出力しています。改行文字に問題がありますか。最初にそれらを文字列に読み込んでからベクトルに入れることができることは知っていますが、この方法でやりたかったのです。これが私のコードです:
#include <iostream>
#include <algorithm>
#include <vector>
#include <stdio.h>
using namespace std;
int main(){
int N;
int Q;
cin >>N>>Q;
string A, B;
//cin >> A>>B;
vector <int> Abit;
vector <int> Bbit;
for (int i=0;i<N;i++){
char c= (int) getchar();
Abit.push_back(c);
}
for (int i=0;i<N;i++){
// cout << Abit.at(i);
char c= (int) getchar();
Bbit.push_back(c);
}
for (int i=0;i<N;i++){
cout << Abit.at(i);
// char c= (int) getchar();
// Bbit.push_back(c);
}
}