【问题标题】:selecting options for multiple input选择多个输入的选项
【发布时间】:2013-05-06 11:45:24
【问题描述】:

这是我第一次使用这个网站,所以我会尽力适当地提出我的问题。

我正在研究一个同时处理名字和姓氏的名称类。我遇到的问题是,在设置 istream 运算符>>时,我无法弄清楚如何让我的程序确定它是否已经到达输入的末尾。例如,如果我只想输入名字并让构造函数处理姓氏。当前的这段代码只会读取名字,但是当我同时给它第一个和最后一个时,它会将它们都读取为名字。

istream& operator>>(istream& is, name& e){
string f;
string l;
is>>f;
if(is.eof())
    {
        e = name(f);

    }
else
    {
        e = name(f,l);
    }

return is;
};

提前感谢您的帮助!

【问题讨论】:

  • 你有输入的两种选择的例子吗?

标签: c++ class input istream


【解决方案1】:

您的 if 条件似乎只检查 eof,无论是否输入了多个名称。

也许您可以将输入分解为一个数组并使用 sizeof 检查多个名称?

我并不完全熟悉 istream 的运作方式,但我希望这对您有用。

【讨论】:

  • 虽然这个答案的第一行可能在正确的行上,但当结果基于运行时计算的结果时,使用 sizeof() 没有用 - sizeof() 在编译时完成。
猜你喜欢
  • 2018-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2013-06-15
相关资源
最近更新 更多