c++ - 从 CSV 文件读取数据后将 string 转换为 int

标签 c++

我正在尝试将 csv 文件中的数据读取到结构体 vector 中,每个结构体包含足球比赛中的各种值(进攻队、四分之一、下降、剩余码数、比赛描述等)。我正在尝试使用 stringstream 将字符串转换为整数,但我返回了垃圾数据。

Data d;  //structs
vector<Data> TeamData;  //vector of structs
string s;
istringstream iss( s );

ifstream myfile;
myfile.open("CSV file here");  //open CSV file


while (  !myfile.eof()  )
{
getline (myfile, d.gameid, ',');  //read to comma, store in d.gameid

getline (myfile, s, ',');  //read to comma
iss >> d.qtr;             //use stringstream to store into d.qtr

repeat for remaining values . . . 

如果您想知道,cvs 文件看起来与此类似:

20070906_NO@IND,1,47,25,IND,NO,1,10,31,(2:25) J.Addai up the middle to NO 27 for 4 yards (S.Fujita).,0,0,2007
20070906_NO@IND,1,46,42,IND,NO,2,6,27,(1:42) P.Manning pass deep left to M.Harrison for 27 yards TOUCHDOWN.,0,0,2007

当我尝试输出所有相关内容时,我的程序返回这样的数据:

Game ID: 20070906_NO@IND
Offensive team: IND
Quarter: 7077994
Down: 4696320
To go: 4670480
Play: (2:25) J.Addai up the middle to NO 27 for 4 yards (S.Fujita).

Game ID: 20070906_NO@IND
Offensive team: IND
Quarter: 7077994
Down: 4696320
To go: 4670480
Play: (1:42) P.Manning pass deep left to M.Harrison for 27 yards TOUCHDOWN.

最佳答案

我认为你应该看看我对“阅读 float ”的回答 而不是解析空格解析逗号。

Using ifsstream to read floats

关于c++ - 从 CSV 文件读取数据后将 string 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18731862/

相关文章:

c++ - 在非虚拟析构函数的情况下自动调用父析构函数?

c++ - 指针和指向引用的指针

c++ map 不返回 end() 即使它应该

c++ - 从 future 对象数组中检索值,std::vector

c++ - 尝试使用opencv(c++)在实时视频帧的中间绘制垂直线

c++ - 按索引 vector 排列

c++ - 在 DirectX、C++ 中映射缓冲区

c++ - 多个类需要访问另一个类的同一个实例

c++ - 为什么在类中添加新的成员变量后需要进行重建?

c++ - CRTP 和基类定义的类型的可见性