我试图获得用户输入:" aa bb cc dd ee"等等,存储在单个字符串中,并将其放在多个字符串string_1" aa",string_2" bb",string_3" cc",string_4" dd",string_5" ee"等
string str;
cin >> str; //user input
//code to split the string
string str_1, str_2, str_3, str_4, str_5;
答案 0 :(得分:1)
#include <stringstream>
int main()
{
std::string MasterString = "Super cali\nfragelistic \n expialadogis\n then more words\n hello world";
std::stringstream iss(MasterString);
while(iss.good())
{
std::string SingleLine;
getline(iss,SingleLine,'\n');
// Process SingleLine here
}
}
像这样的东西。
答案 1 :(得分:0)
std::istream& operator>>(std::istream&, std::string)
已经为你做了拆分。输入与空格分开。
所以写作
std::string str_1, str_2, str_3, str_4, str_5;
std::cin >> str_1 >> str_2 >> str_3 >> str_4 >> str_5;
会做你想要达到的目标。
如果您确实需要将输入存储到单个字符串1st中,则应使用std::getline()
函数:
std::string str;
std::getline(std::cin,str);
并使用std::istringstream
分割各个值:
std::istringstream iss(str);
iss >> str_1 >> str_2 >> str_3 >> str_4 >> str_5;