精华内容
下载资源
问答
  • C++ 读取CSV文件

    2021-07-01 09:53:18
    C++ 读取CSV文件

    C++ 读取CSV文件

    #include "RWCSVService.h"
    #include <QDateTime>
    #include <fstream>
    
    QRWCSVService::QRWCSVService(QObject *parent) : QObject(parent)
    {
    	m_RWCSVRun = true;
    	std::thread CsvT(&QRWCSVService::beginRWCSVProcess, this);
    	CsvT.detach();
    }
    
    QRWCSVService::~QRWCSVService()
    {
    	m_RWCSVRun = false;
    }
    
    unsigned int __stdcall QRWCSVService::beginRWCSVProcess()
    {
    	while (m_RWCSVRun) {
    		if (m_CsvBuffers.empty())
    		{
    			_sleep(2);
    			continue;
    		}
    		QString Csv;
    		m_CsvBuffers.dequeue(Csv);
    		QDateTime time = QDateTime::currentDateTime();
    		std::string date = time.toString("MM_dd").toStdString();
    		std::string fileName = "..\\" + date + "_Result.csv";
    		std::ofstream runCsv(fileName, std::ios::app);
    		QStringList list = Csv.split("#");
    		runCsv << list[0].toStdString()<< ","<<list[1].toStdString()<< ","<<list[2].toStdString() << std::endl;
    		runCsv.flush();
    		runCsv.close();
    	}
    	return 0;
    }
    
    #pragma once
    #include <QObject>
    #include <thread>
    #include "safequeue.h"
    
    class QRWCSVService :public QObject
    {
    	Q_OBJECT
    public:
    	explicit QRWCSVService(QObject *parent = nullptr);
    	~QRWCSVService();
    
    	unsigned int __stdcall beginRWCSVProcess();
    public:
    	SafeQueue<QString> m_CsvBuffers;
    
    private:
    	bool m_RWCSVRun{ false };
    
    };
    
    
    展开全文
  • C++读取CSV文件

    2020-04-27 22:37:45
    采用C++实现CSV文件读取,不依赖任何第三方库,可设置所读取的文件是否包含标题; 内部包含CSVReader类、使用示例代码以及一个测试数据文件
  • 主要介绍了c语言读取csv文件和c++读取csv文件示例,需要的朋友可以参考下
  • c++读取csv文件

    2017-12-01 17:33:02
    本文档程序给出VS2013如何读取csv文件的详细代码,通过动态分配数组实现
  • C++读取csv文件

    万次阅读 2019-03-26 17:24:54
    第一步,读取csv中的传感器数据 此处用到C++文件的输入输出控制知识 首先定义声明一个ifstream对象,与文件名关联。ps:关联后相当于找到了文件的地址,可以通过此对象对文件操作 需要包含头文件#include <...

    初学C++,尝试实现惯性导航+零速修正+卡尔曼滤波

    第一步,读取csv中的传感器数据

    此处用到C++文件的输入输出控制知识

    首先定义声明一个ifstream对象,与文件名关联。ps:关联后相当于找到了文件的地址,可以通过此对象对文件操作

    需要包含头文件#include <fstream>

    ifstream _csvInput("csvdata/xxxx.csv")

    或者

    ifstream _csvInput;
    _csvInput.open(csvdata/xxxx.csv)

    然后就可以像cin一样操作_csvInput。例如

    char ch;
    _csvInput >> ch;
    char buf[80];
    _csvInput >> buf;
    _csvInput.getline(buf, 80);
    string line;
    getline(_csvInput, line);

    这里,我读的是传感器数据,csv文件每行,首个为number,其次是三个acc数据,三个gyro数据,三个mag数据

    因此使用getline先读到一行数据

    定义一行数据为字符串

    string _Oneline;

    读该文件一行数据

    getline(_csvInput, _Oneline);

    此时读到的数据存在_Oneline中,此行数据包括了上述四类数据(number,acc[3],gyro[3],mag[3])

    此时再声明一个输入的串流对象,和刚刚的ifstream类似,由此可以对_Oneline进行操作

    istringstream _Readstr(_Oneline);	

    再定义一行中,各个数据由_partOfstr表示

    string _partOfstr;

    读取由  ','  隔开的各个数据 ,再转化为float型(一行有10个','分开的数据)

    for(int i = 0; i < 10; i++)
    {	
    	getline(_Readstr, _partOfstr, ',');
    	data[i] = atof(_partOfstr.c_str());	
    		 
    }

    得到的data[]即是最后的结果。

    最后程序

    main.cpp

    #include "global.h"
    #include "ReadData.h"
    #include "imu.h"
    
    using namespace std;
    
    int main()
    {
    	IMUdata imudata;
    	//指定文件路径
    	const char* path = "csvdata/straightLine_CalInertialAndMag.csv";
    	//初始化CSVreader类对象
    	CSVreader reader(path);
    	//读数据,第一行为列名,不做处理
    	reader.readline();
    	while(!reader.readline())
    	{
    		//得到原始数据
    		imudata = setIMU(reader.data);
    		cout << imudata.acc[0] << endl;
    		break;
    	}
    	//暂停等待用户信号,不然控制台程序会一闪而过
    	system("pause");
    }

    ReadData.cpp

    #include "ReadData.h"
    
    //构造函数,初始化文件路径
    CSVreader::CSVreader(const char *path)
    {
    	_csvInput.open(path);
    }
    //读取csv文件数据
    int  CSVreader::readline()
    {
    	//定义一行数据为字符串
    	string _Oneline;
    	//读取一行数据
    	getline(_csvInput, _Oneline);
    	
    	//cout << "原始字符串:" << _Oneline << endl;
    
    	//如果读取到首行数据,返回失败
    	if (_Oneline[0] == 'P')
    		return EXIT_FAILURE;
    	//定义字符串流对象
    	istringstream _Readstr(_Oneline);	
    	//定义一行数据中的各个字串
    	string _partOfstr;
    	//将一行数据按','分割
    	for(int i = 0; i < 10; i++)
    	{	
    		getline(_Readstr, _partOfstr, ',');
    		data[i] = atof(_partOfstr.c_str());	
    		 
    	}
    	//判断是否读完数据
    	if ((data[0]||data[1]||data[3]) == 0)
    		return EXIT_FAILURE;
    	return EXIT_SUCCESS;
    }

    ReadData.h

    #pragma once
    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <string>
    #include <vector>
    
    #include "global.h"
    
    using namespace std;
    //定义CSV读类
    class CSVreader
    {
    public:
    	CSVreader(const char *);
    	int readline();
    	float data[10];
    private:
    	ifstream _csvInput;
    };
    

    imu.cpp

    #include "imu.h"
    //将文件读到的数据传到IMUdata结构体
    IMUdata setIMU(float data[])
    {
    	IMUdata imudata;
    	for (int i = 0; i < 3; i++)
    	{
    		imudata.acc[i] = data[i + 1];
    		imudata.gyro[i] = data[i + 4];
    		imudata.mag[i] = data[i + 7];
    	}
    	return imudata;
    }
    

    imu.h

    #pragma once
    
    struct Time {
    	int hour;
    	int minute;
    	int sec;
    	int ms;
    };
    
    struct IMUdata {
    	float acc[3];
    	float gyro[3];
    	float mag[3];
    	int number;
    };
    
    IMUdata setIMU( float data[]);

     

    展开全文
  • c++ 读取csv文件

    千次阅读 2014-09-26 10:35:34
    #include "stdafx.h" #include #include #include using namespace std; int main(int argc, char* argv[]) ... ifstream file ( "D:\\test.csv" ); // declare file stream: http://ww
    #include "stdafx.h"
    
    #include <iostream> 
    
    #include <string> 
    
    #include<fstream> 
    
     
    
    using namespace std;
    
     
    
    int main(int argc, char* argv[])
    
    {
    
           ifstream file ( "D:\\test.csv" ); // declare file stream: 					http://www.cplusplus.com/reference/iostream/ifstream/
    
      string value;
    
      while ( file.good() )
    
      {
    
         getline ( file, value, ',' ); // read a string until next comma: 		http://www.cplusplus.com/reference/string/getline/
    
         cout << string( value, 0, value.length() )<<","; // display value removing the first and the last character from it
    
     
    
      }
    
     
    
    }
    
    读取CSV文件C#
    
    C# 读取CSV文件2009年06月25日 星期四 19:03方法一,纯文本方法,即把该文件当做文本文件读取
    
     
    
    int intColCount = 0; 
    
    bool blnFlag = true; 
    
    DataTable mydt = new DataTable("myTableName");
    
     
    
    DataColumn mydc; 
    
    DataRow mydr;
    
     
    
    string strpath = ""; //cvs文件路径
    
    string strline; 
    
    string [] aryline;
    
     
    
    System.IO.StreamReader mysr = new System.IO.StreamReader(strpath);
    
     
    
    while((strline = mysr.ReadLine()) != null) 
    
    { 
    
    aryline = strline.Split(new char[]{','});
    
     
    
    if (blnFlag) 
    
    { 
    
    blnFlag = false; 
    
    intColCount = aryline.Length; 
    
    for (int i = 0; i < aryline.Length; i++) 
    
    { 
    
    mydc = new DataColumn(aryline[i]); 
    
    mydt.Columns.Add(mydc); 
    
    } 
    
    }
    
     
    
    mydr = mydt.NewRow(); 
    
    for (int i = 0; i < intColCount; i++) 
    
    { 
    
    mydr[i] = aryline[i]; 
    
    } 
    
    mydt.Rows.Add(mydr); 
    
    }
    
      mydt.Rows.RemoveAt(0);
    
                dataGridView1.DataSource = mydt.DefaultView;
    
                dataGridView1.Columns[0].HeaderText = "编号";
    
     
    
     
    
    方法二、当做一个数据源读取,常用的sql语句都能执行的
    
     
    
    using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\csv\;Extended Properties='Text;'"))   
    
    {   
    
        DataTable dtTable = new DataTable();   
    
     
    
        OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Test.csv]", conn);   
    
        try 
    
        {   
    
            adapter.Fill(dtTable);   
    
        }   
    
           
    
        catch (Exception ex)   
    
        {   
    
            dtTable = new DataTable();   
    
        }   
    
        this.GridView1.DataSource = dtTable;   
    
        this.GridView1.DataBind();   
    
    } 
    


    展开全文
  • c++读取csv文件数据

    2018-07-23 14:12:13
    c++读取csv数据并存储到数组中。csv数据可以为一行多列也可以为多行一列。
  • c++读取csv文件和写入文件

    万次阅读 2016-04-05 22:49:07
    一直以来感觉对文件的读写和流的使用比较陌生,最近在写的一个project正好需要读取csv文件的数据和创建新的csv文件,于是在网上看了一些对csv文件读写操作的文章,基本了解了大概的操作。 读取.csv文件 ...

    一直以来感觉对文件的读写和流的使用比较陌生,最近在写的一个project正好需要读取csv文件的数据和创建新的csv文件,于是在网上看了一些对csv文件读写操作的文章,基本了解了大概的操作。


    读取.csv文件


    注意:.csv文件是用','作为分隔符,所以每次读取到','截止。

    代码如下:

    #include<iostream>
    #include<fstream>
    using namespace std;
    
    
    int main(){
    string value;
    char filename[256];
    cout<<"请输入文件名"<<endl;
    cin>>filename;
    ifstream infile(filename);
    while(infile.good()){
    //.csv文件用","作为分隔符
    getline(infile,value,',');
    cout<<value<<endl;
    }
    return 0;
    }

    代码运行结果如下:


    创建.csv文件


    #include<iostream>
    #include<fstream>
    using namespace std;
    
    int main(){
    string value = "create a new file!";
    ofstream outfile;
    outfile.open("f:\\newfile.csv",ios::out);
    outfile<<value;
    outfile.close();
    return 0;
    }

    代码运行结果如下:


    打开newfile.csv显示:



    
    展开全文
  • c++读取csv文件示例

    千次阅读 2019-10-27 22:41:54
    近段时间公司业务需要读写csv文件,网上搜来搜去没找到完善的库,其实我的要求的真不高,只是要求c或者c++语言,跨平台,结果愣是没有,后来从朋友那里找来一份他自己写的代码,用着还不错,现在拿出来给大家分享 ...
  • C++读取csv文件的一行并转化为一维数组 注释:csv文件只有一行,数据个数为8192个 代码如下: #include <iostream> #include <fstream> #include <sstream> #include <string> #define ...
  • 我想读取如下CSV文件: <p style="text-align:center"><img alt="" height="203" src="https://img-ask.csdnimg.cn/upload/1607587406224.PNG" width="532" /></p> 为什么读取第一行的时候会出现三个字符的...
  • 自定函数实现C++读取CSV文件

    千次阅读 2010-02-28 23:23:00
    自定函数实现C++读取CSV文件http://developer.51cto.com 2010-02-01 13:26 佚名 博客园 我要评论(0)C++读取CSV文件需要一个合适的函数来进行具体的操作。如果没有现成的函数供我们使用,我们可以自己编写一个来...
  • vs2019:C++读取csv文件

    2020-11-20 14:04:31
    读取一个csv文件,将数据存到vector中,并将此作为我另一个程序的输入,因此对于读取的过程创建了相应的.h文件和.cpp文件。 原csv文件内容: 1、Read.h文件 #pragma once #include<vector> using namespace ...
  • 热图像视频数据是,每一帧为一个csv文件,每行像素值由逗号分隔,行与行之间是换行符,数据格式是纯文本,科学计数法。需要将全部数据存至一个mat中,以便后续使用opencv库处理。
  • C++读取CSV文件中的数据

    万次阅读 多人点赞 2016-03-08 16:24:54
    CSV文件是一种文本文件,表示的是Excel表格数据,可以由办公软件Excel轻松生成。为了在程序中使用Excel数据,就需要以文本的形式操作Excel数据,具体就是操作CSV表格数据。如下所示, #include #include #include...
  • } int main() { ifstream fin("test.csv"); //打开文件流 string line; while (getline(fin, line)) //"\n"区分行,遇到eof终止 { cout 原始字符串:" ; istringstream sin(line); vector fields; string field; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,785
精华内容 2,714
关键字:

c++读取csv文件

c++ 订阅