C ++如何在向量中输入某些东西

时间:2018-12-02 19:17:33

标签: c++ loops if-statement vector

我有一个空向量,需要用二进制数字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 ++专家

3 个答案:

答案 0 :(得分:1)

使用||而不是if语句中的&&。同样,在for循环的比较中向量的大小(binV.size())为0,因此循环将不会运行。您可能想尝试执行do while循环。希望我能有所帮助!

答案 1 :(得分:1)

您的向量的开头长度为零

vector<int> binV;  //zero length

在这一行代码中

for (int i = 0; i < binV.size(); i++){//some code}

由于binV为空,将不会运行

此表达不正确

if (input == 1 && input == 0)    //not valid

&&是逻辑和运算符,如果条件之一为false,则此表达式将返回false 您需要使用逻辑运算符或||运算符

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语句导致封闭for,range-for,while或do-while循环或switch语句终止。

答案 2 :(得分:0)

我认为问题出在binV.size; 您需要将其替换为binV.size();