У меня есть пустой вектор, который мне нужно заполнить двоичными числами 1 и 0, и когда пользователь вводит что-то другое, кроме 0 и 1, размер вектора завершен. Я пробовал что-то вроде этого:
#include "pch.h"
#include <iostream>
#include <vector>
using namespade std;
bool task1() {
vector<int> binV
int input = 0;
for (int i = 0; i < binV.size; i++) {
cout << "Enter binary number: " << " ";
if (input == 1 && input == 0) {
cin >> input;
binV.push_back(input);
}
else {
cout << "Wrong input, the size of vector is complete";
}
}
return 0;
}
int main() {
task1();
}
Я сделал простой цикл для ввода и сделал этот оператор if / else, который, как я полагаю, неверен, но не нашел решения своей задачи, и я столкнулся с проблемами кода C2446 и C3867, которые я не понимаю, поскольку я не эксперт в C++
Я забыл добавить, что когда я редактировал вопрос, теперь все в порядке
@BeginnerAlibi binV.size; у вас там опечатка, это должен быть binV.size();
Теперь код в порядке, но вектор пуст, цикл прервется; потому что в векторе нет размера





Думаю, что проблема в binV.size;
Вам нужно заменить его на binV.size();
Использование || вместо && в вашем операторе if. Также размер вашего вектора (binV.size ()) в сравнении вашего цикла for равен 0, поэтому ваш цикл не будет работать. Вместо этого вы можете попробовать выполнить цикл do while. Надеюсь, я был вам полезен!
Ваш вектор имеет нулевую длину в начале
vector<int> binV; //zero length
В этой строке кода
for (int i = 0; i < binV.size(); i++){//some code}
Не запускается, потому что binV пуст
Это выражение неверно
if (input == 1 && input == 0) //not valid
Этот && является логическим и оператором, если одно из условий ложно, это выражение вернет ложь.
Вам необходимо использовать логический оператор или оператор ||
if (input == 1 || input == 0)
Если вы хотите прервать цикл for, если значение отличается от 1 или 0
for (int i = 0; i < binV.size(); i++) {
cout << "Enter binary number: " << " ";
if (input == 1 || input == 0) {
cin >> input;
binV.push_back(input);
}
else {
cout << "Wrong input, the size of vector is complete";
break; //here
}
команда break; завершит цикл
break statement causes the enclosing for, range-for, while or do-while loop or switch statement to terminate.
Код должен находиться внутри функции
main().