c++语言中如何实现把相应的数据保存到CSV表格中

c++语言中如何实现把相应的数据保存到CSV表格中

cvs表格的生成路径在当前程序的执行目录下
所生成表格的样例展示
文件名
在这里插入图片描述

文件数据
文件内容

#include "stdafx.h"
#include "iostream"
#include <windows.h>
#include "boost/filesystem.hpp"

using namespace std;
using namespace boost::filesystem;

#pragma comment(lib,"libboost_filesystem-vc120-mt-gd-1_63.lib")
#pragma comment(lib,"libboost_system-vc120-mt-gd-1_63.lib")

#define MAX_PATH          260

bool SaveResult(char* szFileName, char* szSN ,char* szTestHeaders, char* szTestContents)
{
	FILE* LogFile;
	char szLogFileName[MAX_PATH] = { 0 };
	char szLogFilePath[MAX_PATH] = { 0 };
	char szHeaders[4096] = { "SN, Time, " };//SN:序列号
	//SYSTEMTIME结构体获取当地的时间。
	SYSTEMTIME curTime;
	GetLocalTime(&curTime);
	sprintf_s(szLogFileName, ".\\%s_%04d-%02d-%02d.csv", szFileName, curTime.wYear, curTime.wMonth, curTime.wDay);
	char szDateTime[MAX_PATH] = { 0 };
	//显示时间间隔 
	sprintf_s(szDateTime, "%04d/%02d/%02d %02d:%02d:%02d", curTime.wYear, curTime.wMonth, curTime.wDay, curTime.wHour, curTime.wMinute, curTime.wSecond);
	char szContents[4096] = { 0 };
	char szFixContents[1024] = { 0 };//固定内容
	strcat_s(szFixContents, szSN);
	strcat_s(szFixContents, ", ");
	strcat_s(szFixContents, szDateTime);
	strcat_s(szFixContents, ", ");

	std::string sLogPath = string(szLogFileName);
	boost::filesystem::path LogFileName_path(sLogPath);	

	if (boost::filesystem::exists(LogFileName_path))
	{
		errno_t err = fopen_s(&LogFile, szLogFileName, "a+");
		if (err != 0 || LogFile==NULL)
		{
			cout << "打开" << szLogFileName << "文件失败";
			return false;
		}
	}
	else
	{
		errno_t err = fopen_s(&LogFile, szLogFileName, "a+");
		if (err == 0)
		{
			strcat_s(szHeaders, szTestHeaders);
			fprintf(LogFile, "%s\n", szHeaders);
		}
		else
		{
			cout << "打开" << szLogFileName << "文件失败";
			return false;
		}
	}

	strcat_s(szContents, szFixContents);
	strcat_s(szContents, szTestContents);
	fprintf_s(LogFile, "%s\n", szContents);
	fclose(LogFile);
}

int _tmain(int argc, _TCHAR* argv[])
{
	char *strTestItem = new char[100];
	char *strHeaders = new char[100];
	char *strContents = new char[500];
	float m_testData = 100.0;
	sprintf_s(strTestItem, sizeof("TestData"), "TestData");
	sprintf_s(strHeaders, 100, "TestDataKeyName");//需保存数据的键名
	sprintf_s(strContents, 200, "TestDataKeyName");
	sprintf_s(strContents, 200, "%f", m_testData);//需保存的键值

	string strSN = "1";//需保存数据的排列序号
	SaveResult(strTestItem, (char*)strSN.c_str(), strHeaders, strContents);

	return 0;
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值