【问题标题】:Can I redirect "cin" to function with regex?我可以重定向“cin”以使用正则表达式吗?
【发布时间】:2016-11-25 11:19:20
【问题描述】:

我已经为this 问题纠结了几天,但我仍然无法解决我的问题。

如果我需要从键盘读取两个字符串,我可以这样做:

cin >> str1 >> str2;

但是我想过滤输入。

我正在尝试做的事情是这样的:

cin >> filter1 >> str1 >> filter2 >> str2;

或者

cin >> filter1 >> filter2 >> str1 >> str2;

其中 filter1filter2 是带有正则表达式的函数,用于过滤输入。

我最大的麻烦是我看不到如何在输入和字符串之间插入函数。 .

任何帮助表示赞赏

【问题讨论】:

  • 你能容忍>> filter(str1)吗?我认为这会更容易实现。
  • 是的,但在那种情况下应该是 cin >> filter1(str1) >> filter2(str2)?像这样?
  • 我该怎么做?
  • 对不起,我的最后一条评论是废话。我以为你可以逃脱 filter(str1) >> filter(str2)
  • 如何从 'cin' 重定向到函数?

标签: c++ regex cin


【解决方案1】:

您的过滤器函数应该返回使用正则表达式实现过滤的类的对象。然后,您将重载 operator>> 以接受该对象,该对象将读取数据并调用它。查看 istream 标头以了解如何执行此操作。对象必须被销毁,否则它可能是某种单例

【讨论】:

    猜你喜欢
    • 2020-01-02
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2015-03-21
    • 2013-05-23
    • 2012-08-28
    • 1970-01-01
    相关资源
    最近更新 更多