【发布时间】:2016-08-16 18:48:04
【问题描述】:
我想制作一个自定义的 istream 操纵器,它从输入中读取 2 个字符,然后从输入中跳过 2 个字符,并一直这样做,直到用完任何输入为止。
例如,如果我有这样的代码:
std::string str;
std::cin >> skipchar >> str;
其中skipchar是我的操纵器,如果用户输入1122334455,str应该包含113355。
这是我到目前为止所得到的,我不知道应该在 while 循环条件中放入什么才能使这段代码正常工作:
istream& skipchar(istream& stream)
{
char c;
while(1)
{
for (int i = 0; i < 2; ++i)
stream >> c;
for (int i = 0; i < 2; ++i)
stream.ignore(1, '\0');
}
return stream;
}
任何帮助将不胜感激。
【问题讨论】:
标签: c++ io istream manipulators