0

我有一些包含 nba 球队及其首发球员的文件,我需要将此信息添加到我的程序中,然后对他们执行一些任务。

我目前坚持能够解析文件。

文件如下所示:

Team Name, Point guard, shooting guard, small forward, power forward, center

例如:

Chicago Bulls, Derrick Rose, Kyle Korver, Luol Deng, Carlos Boozer, Joakim Noah Denver Nuggest, .. etc.

我希望能够只添加球队、控球后卫和小前锋的名字,但我不知道该怎么做。

到目前为止我所拥有的:

 17         ifstream* myIN = new ifstream();
 18         myIN->open(filename.c_str());
 19 
 20         string teamName;
 21 
 22         *myIN >> teamName;
 23         
 24         while(!myIN->eof()){
 25                 TEAM.push_back(teamName);
 26                 //TODO
 27         }      

我正在研究使用“find()”来查找每个逗号,但我不知道如何只记录第一个逗号之前和之后以及第三个逗号之后的信息。

任何形式的指导将不胜感激。

4

2 回答 2

1

这是一个非常常见的(幸运的是,很简单)使用tokenizing.

在这里,您需要的不同字段由相同的字符分隔:,

有关更多信息,请参阅有关在 C++ 中进行标记的这个 stackoverflow 问题

另外,不要忘记删除标记化元素上不必要的空格(第一个除外)

于 2013-09-14T00:48:44.347 回答
0

许多语言(或其标准库)都有一个split函数,其目的是标记(或拆分)分隔字符串。不幸的是,C++std::string类不提供split函数。

但是,boost::split提供此功能;看到这个答案和其他答案在 C++ 中拆分字符串

顺便说一句,您的文件格式似乎是通常所说的CSV 文件。您可能还会发现这个感兴趣的问题:如何在 C++ 中读取和操作 CSV 文件数据?

于 2013-09-14T01:04:55.807 回答