0

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

remove 44

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

string In;
getline (cin, In);

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

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

4

1 回答 1

1

您可以通过执行重载 operator>> 来执行此操作

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;

要了解有关 operator>> 的更多信息,请查看istream::operator>>

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

于 2012-04-12T01:12:11.633 回答