我不知道如何制作以下内容。我想输入一个数字序列,当我输入 0 时,停止 cin(就像我单击 Enter 一样)并仅自动计算那些 (number%2==0) 在另一行上的数字。可以用函数来完成吗?我希望你能理解我:)
例如,我输入 123456785435430(我输入了 '0',所以 cin 立即停止并 cout me 2 4 6 8 4 4 3)
这是一个使用给定分隔符的简单版本,
#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;
}