一个未指定的输入数C++ +CMD

一个未指定的输入数C++ +CMD,c++,line,C++,Line,我正在解决一个基本问题,但我被卡住了。我不使用C++,但是我必须… 我正在做一个程序,它接受两倍的输入,并做一些对这个问题不重要的数学运算 我需要通过命令行的所有输入。 我知道我可以用这个: cin >> v1 >> v2 >> v3; //etc 但是我不知道这个计划需要多少数字。当用户设置一个特定的数字时,程序将停止。我看到两种可能的解决方案 A.您可以像这样输入std::string: std::string input; std::getline(s

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

我正在做一个程序,它接受两倍的输入,并做一些对这个问题不重要的数学运算

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

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

但是我不知道这个计划需要多少数字。当用户设置一个特定的数字时,程序将停止。

我看到两种可能的解决方案

A.您可以像这样输入std::string:

std::string input;
std::getline(std::cin, input);
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);
    }
}
通过这种方式,您将获得包含输入的整个字符串,然后您可以解析该字符串,并获取所有数据,搜索空白,等等

B.您可以使用STL vector和make do\while循环直到收到某个内容,如下所示:

std::string input;
std::getline(std::cin, input);
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范围内。您可以通过减少比较右侧的数字来减小范围。如果我们处理整数,比较将涉及两个值而不是一个范围。

你不知道程序需要多少数字是什么意思?你为什么坚持用一句话?好吧,我试着简单地解释一下。。示例:程序使用输入数字求和。仅当用户输入5或0或某些特定值时,程序才会停止。因为我不知道会有多少个数字。我知道这是一件愚蠢的事情,但我需要解决这个问题。我发布了一个答案,我想这可能就是你们想要的。它允许用户在一行中输入任意数量的数字,只要它们之间用空格隔开。我已经在你的帖子中解决了一些英语问题。请用数据/数字/代码解释,因为不清楚你在问什么。@doctorze如果答案对你有用,请将其标记为已回答。