本程序可以读入任意行和列的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
;
本代码中最重要的部分为
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 <iostream>#include <fstream>#include <sstream>#include <typeinfo>#include <cstring>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().