繁体   English   中英

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

[英]Best way to parse user input using getline?

因此,我需要一点帮助来理解从用户那里获取输入并将其存储在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;

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM