如果没有输入,如何将值设置为0? C ++

时间:2020-07-22 21:59:39

标签: c++

嗨,如果这是一个愚蠢的问题,我很抱歉,但是我是编程新手。除非输入内容不同,否则我无法找到如何为变量赋值0。看起来像这样

X_train <- train_list$X
X_test <- test_list$X

X_Train <- as(X_train, "dgCMatrix")



xgb <- xgboost(data = X_train, 
               label = y_train, 
               eta = 0.9,
               max_depth = 3, 
               nround=10, 
               subsample = 0.3,      
               colsample_bytree = 0.1,  
               seed = 1,
               eval_metric = "auc",
               objective = "binary:logistic",
               #num_class = 2,
               booster = 'gbtree',  
               max_delta_step = 1,    
               scale_pos_weight=2,   
               gamma=5 ,                  
               min_child_weight = 2    
)


pred <- predict(xgb, X_test)

当我只输入2个数字并按Enter键运行它时,它不显示输出,因为它等待我添加第三个值。我希望能够输入1到3之间的数字,但是如果我没有输入值,我希望程序将其值设为0。

1 个答案:

答案 0 :(得分:2)

由于您不知道要输入多少个数字,因此应先阅读整行,然后根据需要从该行中提取数字,例如:

#include <iostream>
#include <sstream>
#include <string>

int main() {
    // weekly accountability
    std::cout << " ... Please write down the numbers\n";

    std::string line;
    std::getline(std::cin, line);

    std::istringstream iss(line);

    double num, sum = 0.0;
    while (line >> num) {
        sum += num;
    }

    double x = 0.66;
    std::cout << " Great! so your results were " << sum * x;

    return 0;
}

否则,您可以直接直接从std::cin进行读取,直到用户键入其平台的EOF序列(或输入错误的输入)为止,例如:

#include <iostream>

int main() {
    // weekly accountability
    std::cout << " ... Please write down the numbers\n";

    double num, sum = 0.0;
    while (std::cin >> num) {
        sum += num;
    }

    double x = 0.66;
    std::cout << " Great! so your results were " << sum * x;

    return 0;
}