输入数量未指定的c++ CMD

An unspecified number of inputs c++ CMD

本文关键字:c++ CMD 未指定 输入      更新时间:2023-10-16

我正在解决一个基本问题,但我被卡住了。我不用c++,但我必须…

我正在编写一个程序,它接受输入(double)并进行一些数学运算(这对这个问题不重要)。

我需要所有的输入通过CMD行。我知道我可以用这个:

cin >> v1 >> v2 >> v3; //etc

但是我不知道这个程序需要多少数字。

程序将在用户设置特定号码时停止。

我看到两个可能的解决方案。

。您可以像这样输入std::string:

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

这样你将得到整个字符串的输入,然后你可以解析这个字符串并得到所有的数据(搜索空白等等);

B。您可以使用STL vector并执行while循环,直到接收到某些内容,如下所示:

std::vector<int> vec;
bool stop = false;
while (!stop) {
    int i;
    std::cin >> i;
    if (i == -1) { // for example -1 is "stop"
        stop = true;
    } else {
        vec.push_back(i);
    }
}

,然后使用vector来访问和解析数据

是否与您所寻找的内容相似?

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    double num{ 0.0 }, specificNum{10.0};
    vector<double> vec(0);
    do {
        cout << "Enter number: ";
        cin >> num;
        vec.push_back(num);
    } while (!(abs(num - specificNum) < 0.5));
    system("pause");
    return 0;
}

要求用户输入一个双精度数,直到该双精度数落在10.0(特定数)的+/- 0.5范围内。您可以通过减少比较右侧的数字来减小范围。如果我们处理的是整数,比较将涉及两个值,而不是一个范围。