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

Best way to parse user input using getline?

本文关键字:最佳 方法 输入 用户 getline 使用      更新时间:2023-10-16

所以我需要一点帮助来理解从用户那里获取输入并将其存储在 2 种独立数据类型中的最佳方式。我想做的是以输入为例:

remove 44
我想获取

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

string In;
getline (cin, In);

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

我知道这是一个非常简单的问题,但我在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;

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

若要了解有关运算符重载的详细信息,请查看C++运算符重载指南。