嗨,如果这是一个愚蠢的问题,我很抱歉,但是我是编程新手。除非输入内容不同,否则我无法找到如何为变量赋值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。
答案 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;
}