C++——存储数据文件为TXT/CSV格式

  • Post author:
  • Post category:其他


为存储测试数据,特此记录

1.存储为TXT文件

#include <io.h>
#include <fstream> 
#include<iostream>
#include<stdio.h> 
using namespace std;


int main()
{    
	
	int a[2][3] = { 1,2,3,4,5,6 };

	FILE *fp;
	fp=fopen("result.txt","a+");
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			fprintf(fp,"%d ", a[i][j]);
		}
		fprintf(fp, "\n");
	}
	fclose(fp);

	return 0;
}

2.存储为csv文件

可以用FILE及ofstream两种方式

在使用ofstream时:open()函数需注意以下几点

在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联,通过ofstream,ifstream,fstream对象进行对文件的读写操作

public member function  
  
void open ( const char * filename,  
            ios_base::openmode mode = ios_base::in | ios_base::out );  
  
void open(const wchar_t *_Filename,  
        ios_base::openmode mode= ios_base::in | ios_base::out,  
        int prot = ios_base::_Openprot);

参数: filename   操作文件名

mode        打开文件的方式

prot         打开文件的属性//基本很少用到

打开文件的方式在ios类(所以流式I/O的基类)中定义,有如下几种方式:

这些方式是能够进行组合使用的,以“或”运算(“|”)的方式

#include <io.h>
#include <fstream> 
#include<iostream>
#include<stdio.h> 
using namespace std;


int main()
{    
	
	int a[2][3] = { 1,2,3,4,5,6 };
       //方法1
	ofstream ofile;
	ofile.open("result.csv", ios::out | ios::trunc);//判断.csv文件是否存在,不存在则建立,每次都会删除之前文件,重新生成,不可复写
        //ofile.open("result.csv", ios::out | ios::app);//所有输出都添加在文件末尾,可复写
	ofile << "First,Second,Third" << endl;
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			ofile << a[i][j] << ",";
		}
		ofile << "\n";
	}
	ofile.close();
        //方法2
	FILE *fp;
	fp=fopen("result1.csv","a+");
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			fprintf(fp,"%d, ", a[i][j]);
		}
		fprintf(fp, "\n");
	}
	fclose(fp);

	return 0;
}



版权声明:本文为wanty_chen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。