我不知道如何制作以下内容。 我想输入一个数字序列,当我输入0时,停止cin(就像我点击Enter)并自动cout那些(数字%2 == 0)在另一行上的数字。是否可以完成功能? 我希望你理解我:)。
例如我正在输入123456785435430(我已输入'0',因此cin会立即停止并告诉我2 4 6 8 4 4 3)
答案 0 :(得分: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;
}
答案 1 :(得分: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;
}