欢迎光临散文网 会员登陆 & 注册

C++读取csv数据

2023-03-29 19:23 作者:-那本  | 我要投稿

这几天,刚好我同事问我QT上面怎么读取csv文件,并输出起始点和终点x,y坐标值(起点、终点、起点、终点......);这是她的程序代码和对应的csv文件:

她的程序读取数据的时候,只能读到x值,并且会跳行,于是让她详细截图了一下读取CSV的程序代码:

针对代码,可以发现,她写的代码还是有很多错误的地方,此处就先不讲具体错误在哪里了,

如果小伙伴有兴趣,对数据处理有基础,可以试试找找其中错误。


由于时间关系,我先贴出可以实现的代码:

#include <iostream>

#include<string>

#include<vector>

#include<fstream>

#include<sstream>

 

using namespace std;


 

int main() 

{

     ifstream inFile("/home/czh/test_1.csv");

      string lineStr;


      vector<vector<string>> strArray;


      getline(inFile,lineStr);    //跳过第一行

      while (getline(inFile, lineStr)) {

          stringstream ss(lineStr);

           string str;

           vector<string> lineArray;

           while (getline(ss, str, ',')){

               lineArray.push_back(str);

               }

               strArray.push_back(lineArray);  //添加数据到数组中

         }

         

       //读取数据

        int j =1;

        for(int i =0;i<strArray.size();i++)

         {

             if(j%2 ==1){

                 double startpoint_x = stod(strArray[i][0]);

                 double startpoint_y = stod(strArray[i][1]);

                 cout << "start_x ="<< startpoint_x<<","<<"start_y ="<<startpoint_y<<endl;

             }

             else if(j%2 == 0){

                 double startpoint_x = stod(strArray[i][0]);

                 double startpoint_y = stod(strArray[i][1]);

                 cout << "end_x ="<< startpoint_x<<","<<"end_y ="<<startpoint_y<<endl;

             }

             j++;


         }

}

最终实现的效果如下所示:

有兴趣大家可以留言,一起讨论一下,一起学习!

C++读取csv数据的评论 (共 条)

分享到微博请遵守国家法律