直到输入为0(零)的数字序列

Sequence of numbers until the input is 0 (zero)

本文关键字:数字 字序 输入      更新时间:2023-10-16

我不知道如何制作以下内容。我想输入一个数字序列,当我输入0时,停止cin(就像我点击enter),并自动计数只有那些数字谁(数字%2==0)在另一行。有可能用功能来完成吗?我希望你能理解我:)

例如,我输入123456785435430(我输入了'0',所以cin立即停止并计数我2 4 6 8 4 43)

下面是一个简单的版本,它使用给定的分隔符

#include <iostream>
using namespace std;
string input_until_delimiter (char delimiter)
{
    string buffer = new string ();
    char c = delimiter;
    while ((c = get()) != delimiter) buffer += c;
    return buffer;
}

你需要一些类似这样的东西:

char x;
std::vector<int> evens;
do {
    std::cin.get(x);
    int v = x - '0'; // int value
    if (v % 2 == 0 and v != 0)
        evens.push_back(v);
} while (x != '0');
for (std::vector<int>::iterator it = evens.begin(); it != evens.end(); ++it)
    std::cout << (*it) << " ";

这是你练习的版本:

#include <vector>
#include <iostream>
void brc() {
    int x;
    std::cin >> x;
    if (x == 0) return;
    if (x % 2 == 0)
        std::cout << x << " ";
    brc();
}
int main() {
    brc();
    return 0;
}