c++ - 为多个输入选择选项

标签 c++ class input istream

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

我正在开发一个处理名字和姓氏的名称类。我遇到的问题是,在设置 istream operator>> 时,我不知道如何让我的程序确定它是否已到达输入末尾。例如,如果我只想输入名字并让构造函数处理姓氏。当前这段代码将只读取名字,但是当我同时给出第一个和最后一个时,它将把它们都作为名字读取。

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;
};

提前感谢您的帮助!

最佳答案

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

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

我并不完全熟悉 istream 的运作方式,但我希望你觉得这很有用。

关于c++ - 为多个输入选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16505160/

相关文章:

java - 在 Android 中为数组添加值

c++ - 我无法让非常基本的命令提示 rune 本处理器正常工作。 ofstream() 的问题

c++ - 使用 C++ 并尝试 "nest"一些代码

javascript - MooTools 类和 JsDoc

C++:const char * 到 stringstream

java - 有什么办法可以知道C++模板中的函数是什么?

php - 更改 Boost Program Options 中的注释字符?

c++ - 用自己的常量值定义变量的类型

python - 输入()错误 - NameError : name '...' is not defined

c++ - 使用 Boost C++ 解析 XML 文件