学⽣信息导出为csv⽂件c语⾔,C++把数组数据存⼊CSV⽂件,
以及读取CSV⽂件的数据...
2. 代码
#pragma once
//Microsoft Visual Studio 2015 Enterprise
#include
#include
#include
#include
#include
#include
using namespace std;
template
class modifyCSVfile
{
private:
struct arrInfo
{
double **arrName;
int lineNum;
int rowNum;
};
public:
string saveArray(base_T* arr, int lineNum, int rowNum, string fileName, int precis = 6);
string saveArray(const vector>& arr, string fileName, int precis = 6);
vector> CSVtoVector(string fileName);
arrInfo CSVtoArray(string fileName);
int delArray(arrInfo);
};
//*************************************************************************************************************************************************************
//************************************************************************************************************************************************************* template
string modifyCSVfile::saveArray(base_T* arr, int lineNum, int rowNum, string fileName, int precis)
//函数功能:把⼀个int/float/double型⼆维数组,存⼊CSV⽂件
//参数1:数组第⼀个元素地址,e.g.【&array1[0][0]】;参数2:数组⾏数;参数3:数组列数;参数4:⽂件名;参数5:设置精度(默认精度是6)
{
fileName += ".csv"; //保存成VSV格式⽂件,⽅便⽤Excel打开
//保存数组到⽂件。如果⽂件不存在,创建⽂件,并写⼊数据;如果⽂件存在,清空重新写⼊
ofstream fout;
fout.open(fileName.c_str(), ios_base::trunc);
fout << showpoint;
fout.precision(precis);
for (int i = 0; i < lineNum; i++)
{
for (int j = 0; j < rowNum; j++)
{
if (j < rowNum - 1)
fout << *(arr + i * rowNum + j) << ","; // arr + i * rowNum + j:到当前数组元素的顺序索引值
else
fout << *(arr + i * rowNum + j) << endl;
}
}
fout.close();
return fileName;
}
⽤法⽰例:Visual Studio 2017 Community
/
/#include
//#include
//#include
//#include
//#include"modifyCSVfile.h"
//
//const int arr_lineNum = 5;
//const int arr_rowNum = 7;
//int main()
//{
// //定义⼀个double型⼆维数组,并赋值
/
/ double k = 1.1;
// double arr[arr_lineNum][arr_rowNum];
// for (int i = 0; i < arr_lineNum; i++)
// {
// for (int j = 0; j < arr_rowNum; j++)
// {
// arr[i][j] = k;
// k = k + 1;
// }
// }
//
/
/ //输出当前数组到屏幕
// for (int i = 0; i < arr_lineNum; i++)
// {
// for (int j = 0; j < arr_rowNum; j++)
// {
// cout << arr[i][j] << " ";
// }
// cout << endl;
// }
// system("pause");
//
/
/ //把当前数组存如⽂件。⽂件位置:当前⼯程⽂件夹下。⽂件格式为.csv,可⽤⽂本⽂档打开,也可⽤Excel打开。
// modifyCSVfile save;
// save.saveArray(&arr[0][0], arr_lineNum, arr_rowNum, "arr1", 6);
//
// return 0;
//}
//************************************************************************************************************************************************************* //************************************************************************************************************************************************************* template
string modifyCSVfile::saveArray(const vector>& arr, string fileName, int precis)
//函数功能:把⼀个vector⼆维数组,存⼊CSV⽂件
/
/参数1:vector对象名;参数2:⽂件名;参数3:设置精度(默认精度是6)
{
fileName += ".csv"; //保存成VSV格式⽂件,⽅便⽤Excel打开
//保存数组到⽂件。如果⽂件不存在,创建⽂件,并写⼊数据;如果⽂件存在,清空重新写⼊ofstream fout;
fout.open(fileName.c_str(), ios_base::trunc);
fout << showpoint;
fout.precision(precis);
for (unsigned int i = 0; i < arr.size(); i++)
{
for (unsigned int j = 0; j < arr[i].size(); j++)
{
if (j < arr[i].size() - 1)
fout << arr[i][j] << ",";
else
fout << arr[i][j] << endl;
}
}
fout.close();
return fileName;
}
⽤法⽰例:Visual Studio 2017 Community
//#include
/
getsavefilename/#include
//#include
//#include
//#include"modifyCSVfile.h"
//
//int main()
//{
// //定义⼀个⼆维vector数组,并赋值
// double k = 1.1;
// int lineNum = 5, rowNum = 7;
// vector > arr2(lineNum, vector(rowNum));
/
/ for (int i = 0; i < lineNum; i++)
// {
// for (int j = 0; j < rowNum; j++)
// {
// arr2[i][j] = k;
// k = k + 1;
// }
// }
//
// //输出当前数组到屏幕
// for (int i = 0; i < lineNum; i++)
/
/ {
// for (int j = 0; j < rowNum; j++)
// cout << arr2[i][j] << " ";
// cout << endl;
// }
// system("pause");
//
// //把当前数组存如⽂件。⽂件位置:当前⼯程⽂件夹下。⽂件格式为.csv,可⽤⽂本⽂档打开,也可⽤Excel打开。
// modifyCSVfile save;
// save.saveArray(arr2, "arr2", 6);
//
// return 0;
//}
//************************************************************************************************************************************************************* //************************************************************************************************************************************************************* template
vector> modifyCSVfile::CSVtoVector(string fileName)
//函数功能:读取只包含数据不包含⽂字的CSV⽂件,并取出⾥边的数据存⼊到⼆维double型vector数组中
//参数1:⽂件名
{
fileName += ".csv";
ifstream fin;
fin.open(fileName.c_str(), ios_base::in); //以只读的⽅式打开⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。