本程序可以读入任意行和列的csv文件,保存在Data这个数组内部
本人找寻CSDN上所有其他类似功能程序,发现没有一个满足我的要求
于是自行编写,可以说领先超越CSDN所有其他类似功能程序,实用性极强

# include <iostream> # include <fstream> # include <sstream> # include <typeinfo> # include <cstring> using namespace std ; int main ( ) const int col = 18 ; const int row = 20 ; double * Data = NULL ; Data = ( double * ) malloc ( row * col * sizeof ( double ) ) ; memset ( Data , 0 , row * col * sizeof ( double ) ) ; ifstream inFile ( "data.csv" , ios :: in ) ; string lineStr ; while ( getline ( inFile , lineStr ) ) stringstream ss ( lineStr ) ; string str ; while ( getline ( ss , str , ',' ) ) double num = stod ( str ) ; * Data = num ; cout << * Data << ' ' ; Data ++ ; cout << endl ; return 0 ;

控制台输出数据
源CSV数据
本代码中最重要的部分为

while (getline(inFile, lineStr))
		stringstream ss(lineStr);
		string str;
		while (getline(ss, str, ','))
			double num = stod(str);
			*Data = num;
			cout << *Data << ' ';
			Data++;
		cout << endl;

首先是使用getline(inFile, lineStr)把CSV文件的每一行吃进去,放在lineSrt中;
下一步利用while (getline(ss, str, ‘,’)),将ss这个字符串流根据“,”隔开,即把每一个数据放到str里;
最后是stod(str)这个函数,可以把str这个字符串转换成double数据,存入Data中;
注意:使用stod这个函数,要设置编译器支持c++11标准,这个自行查一下就好,在dev中很容易设置,使用g++编译的话,需要在g++ 后面加-std=c++11;

本程序可以读入任意行和列的csv文件,保存在Data这个数组内部本人找寻CSDN上所有其他类似功能程序,发现没有一个满足我的要求于是自行编写,可以说领先超越CSDN所有其他类似功能程序,实用性极强#include &lt;iostream&gt;#include &lt;fstream&gt;#include &lt;sstream&gt;#include &lt;typeinfo&gt;#include &lt;cstring&gt;using namespace std;int csv_parser(const char* input, char delimiter); csv_parser(const std::string& input, char delimiter); csv_parser(const char* begin, const char* end, char delimiter); // 字段数量 size_t size() const; // 字段数量是否为空,等价于 size() == 0 bool empty() const; // 返回第 index 个字段。避免拷贝构造。注意,返回的 string_t 不包括 \0 const string_t& at(size_t index) const; // 返回第 index 个字段。需要字符串构造,用于对性能要求不高的环境 std::string operator[](size_t index) const; // 返回原始的输入 const char* input() const; // 返回字段偏移信息 const fields_t& field() const; private: csv_parser(const csv_parser& rhs); csv_parser& operator= (const csv_parser& rhs); void parse(); const char* begin_; const char* end_; const char delim_; fields_t field_; ofstream outFile; outFile.open("data.csv", ios::out); // 打开模式可省略 for(int j=0;j<TotalLength;j++) for (int i = 0; i < 4; i++) outFile << ReadEEGALL[i][j] << ","; outFile << std::endl; outFile.close().