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

C++ 使用getline解析用户输入的最佳方法?,c++,C++,因此,我需要一些帮助,了解从用户获取输入并将其存储在两种不同数据类型中的最佳方法。我想做的是以输入为例: remove 44 我想取第一部分的“remove”并将其保存为字符串,以知道需要调用哪个函数,但随后我想取44并将其保存为int,作为所述函数的输入。到目前为止,我得到的是 string In; getline (cin, In); 现在,我应该更改getline来分隔空间以获得两个字符串,如果是的话,我应该如何做呢?还是应该只获取整个输入并从中创建两个子字符串 我知道这是一个很简单的

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

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

string In;
getline (cin, In);
现在,我应该更改getline来分隔空间以获得两个字符串,如果是的话,我应该如何做呢?还是应该只获取整个输入并从中创建两个子字符串


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

您可以通过执行以下操作来重载操作员>>

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;
要了解有关操作员>>的更多信息,请查看


要了解有关运算符重载的更多信息,请查看。

您熟悉流运算符吗?与中的
cin>>相同;cin>>n?我已经使用过它们,但并不广泛。我还认为getline被认为是更好的练习。如果有更好的方法,我会接受的。嗯,这是一个有趣的解决方案,但我一直在寻找更简单的方法,因为这只是一个小的类编码示例,但我肯定会记住这一点,下次我处理用户输入时。谢谢。你可以得到你的“In”值并对其进行解析,但那将更像是一种“黑客”行为,可能会有这么多的代码。除非明确告诉您使用getline,否则我建议您这样做。作为一个在过去(通过课程和访谈)提出编程问题的人,我更愿意把这看作是一种回应,而不是更严格的东西。好吧,我来试试。我可以在Main.cpp中使用它,对吗?它可以直接进入Main.cpp,从您的代码中看,似乎已经包含了字符串和iostream,因此它应该可以毫无问题地编译。除了一件事,现在一切都正常。它不会让我简单地输入像“add”这样没有数字的输入。我需要它也能够使用一个字符串来告诉它调用什么函数。