C++ 使用getline函数解析c++;

C++ 使用getline函数解析c++;,c++,parsing,C++,Parsing,我一直在做一个项目,它以日期格式接收用户输入,比如“05/10/1996”,然后将其解析为三个整数。一个是月,一个是日,一个是年。我正在查看函数getline(),但不太确定如何使用它一次解析多个对象。有没有办法用while循环来实现这一点?如果是这样的话,我会很感激你的帮助,因为我有点被困在这个问题上。这里有一个方法- int m,d,y; char dummy; cin >> m >> dummy >> d >> dummy >>

我一直在做一个项目,它以日期格式接收用户输入,比如“05/10/1996”,然后将其解析为三个整数。一个是月,一个是日,一个是年。我正在查看函数getline(),但不太确定如何使用它一次解析多个对象。有没有办法用while循环来实现这一点?如果是这样的话,我会很感激你的帮助,因为我有点被困在这个问题上。

这里有一个方法-

int m,d,y;
char dummy;
cin >> m >> dummy >> d >> dummy >> y;
void split(std::vector<std::string> &tokens, const std::string &text, char sep) {
    int start = 0, end = 0;
    while ((end = text.find(sep, start)) != std::string::npos) {
        tokens.push_back(text.substr(start, end - start));
        start = end + 1;
    }
    tokens.push_back(text.substr(start));
}
void拆分(std::vector&tokens,const std::string&text,char sep){
int start=0,end=0;
while((end=text.find(sep,start))!=std::string::npos){
tokens.push_back(text.substr(start,end-start));
开始=结束+1;
}
tokens.push_back(text.substr(start));
}
用法-

int main(int argc, const char * argv[]) {

    std::vector<std::string> tokens;

    std::string *text = new std::string("05/10/1996");

    split(tokens, *text, '/');

    int first = atoi(tokens[0].c_str());
    int second = atoi(tokens[1].c_str());
    int third = atoi(tokens[2].c_str());

    std::cout<<first<<std::endl;
    std::cout<<second<<std::endl;
    std::cout<<third<<std::endl;

    while (true);

    return 0;
}
int main(int argc,const char*argv[]{
std::向量标记;
标准::字符串*文本=新标准::字符串(“05/10/1996”);
拆分(标记,*文本“/”);
int first=atoi(令牌[0].c_str());
int second=atoi(令牌[1].c_str());
int third=atoi(令牌[2].c_str());

std::coutSee介绍如何将字符串拆分为令牌(在本例中,您将使用“/”作为分隔符)。好的,谢谢,我会检查一下