-1

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

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

4

2 回答 2

1

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

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

}
于 2013-03-20T19:42:45.543 回答
0

你需要一些类似的东西:

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;
}
于 2013-03-20T19:10:39.380 回答