[英]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.