使用getline解析用户输入的最佳方法?

时间:2012-04-12 00:56:31

标签: c++

所以我需要一些帮助来理解从用户那里获取输入并将其存储在两种不同数据类型中的最佳方式。我想做的是拿输入示例:

remove 44

我想把第一部分“删除”并保存为一个字符串,以便知道我需要调用哪个函数,但是我想取44并将其保存为int作为所述函数的输入。到目前为止我所拥有的是

string In;
getline (cin, In);

现在我应该更改getline以分隔空格以获得两个字符串,如果是这样,我将如何去做或者我应该只接受整个输入并从中创建2个子串?

我知道这是一个非常简单的问题,但我没有太多使用C ++中的用户输入的经验。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以重载运算符>>通过做

来做到这一点
struct SomeStruct
{
    string id;
    int data;
};

istream & operator>>(istream& is, SomeStruct& someData)
{
    is >> (string&)someData.id;
    is >> someData.data;

    return is;
}

之后

SomeStruct test;
cin >> test;

要详细了解运营商>>,请查看istream::operator>>

要了解有关运算符重载的更多信息,请查看C++ Operator Overloading Guidelines