首页 > 解决方案 > 如果未输入输入,如何将值设置为 0?C++

问题描述

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

int main() {
    // weekly accountability
    std::cout << " ...";
    std::cout << " Please write down the numbers\n";
    double a2;
    double b2;
    double c3;
    std::cin >> a2 >> b2 >> c3;
    "!\n";
    double x = 0.66;
    double sum2 =a2 + b2 +c3;
    std::cout << " Great! so your results were " << sum2 * x<< "";
}

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

标签: c++

解决方案


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

#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;
}

推荐阅读