Используйте векторную структуру данных, вам не нужно указывать ее размер при объявлении, в отличие от массива, и он может увеличиваться автоматически.
Чтобы прочитать ввод до его поступления, поместите cin внутрь, пока выполняется условие цикла.Я использовал getline, чтобы прочитать всю строку и поработать с ней, чтобы всякий раз, когда пользователь нажимал кнопку ввода в пустой строке, программа думала, что ввод больше не поступал, и начинала вычислять «И» входов.
//don't forget to import vector
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class logic_gate {
public:
int x = 0;
logic_gate(){ //default constructor
}
logic_gate(int k){ //another constructor needed
x = k;
}
};
int main(){
cout << endl << "Please enter the values of each bit below . . ." << endl;
vector<logic_gate> and_gate; //no need to tell size while declaration
string b;
while(getline(cin, b)){ //read whole line from standard input
if (b == "\0") //input is NULL
break;
and_gate.push_back(logic_gate(stoi(b))); //to convert string to integer
}
if (!and_gate.empty()){
int output = and_gate[0].x;
for (int i = 1; i < and_gate.size(); i++){
output = output & and_gate[i].x;
}
cout << "And of inputs is: " << output << endl;
}
else{
cout << "No input was given!\n";
}
return 0;
}
Не стесняйтесь спрашивать, если некоторые сомнения остаются