C++从文件读入多个int类型的数据并存入int数组

该博客主要介绍了使用C++语言,将文件中的多个int、float或doubt类型数据读入数组的操作。先编写write_func()函数将10个int型数据存入“test.txt”文件,再编写read_func()函数将文件数据存入数组,最后输出存入数据后的数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        假设我们有个文件里面有多个int类型(float,doubt类型的也一样,把int改成float或doubt就行)的数据,我们想通过读文件把他存入一个数组中,以便我们对它进行操作。

        我们从无到有开始,假设我们还没有这个文件,其实我是想多温习一下这个写文件的操作,嘿嘿,现在我们用代码存入10个int型数据到“test.txt”中。先编写一个write_func()函数。

代码:

void write_func(int a[]) //将数据写入文件
{

	ofstream ofs("test.txt",ios::out);
	
	if(!ofs) 
	{ 	
		cout<<"打开失败1"<<endl;
		exit(1);
	}
	
	for(int i=0;i<10;i++)
	{
		ofs<<a[i]<<" ";
	}
	
	ofs.close(); //关闭文件	
}

“test.txt”文件: 

最后程序运行后我们存入文件的数据

然后我们编写一个读文件的read_func()函数,将文件的数据存入数组中。

代码:

void read_func(int buf[])//将文件数据读出到数组
{
	ifstream ifs;
	ifs.open("test.txt",ios::in);
	
	if(!ifs)  
	{ 	cout<<"打开失败2";
		exit(1);
	}
	
	int cnt=0;

//eof(),文件未结束时返回0,文件结束且正常结束返回1 
	while(!ifs.eof()) 
		ifs>>buf[cnt++];
//其实这里我理解的是遇到空格或者换行啥的就会cnt++
//意思就是 1 50之间有空格或者换行 一开始cnt==0,buf[0]存入的是1 
//继续从1往后扫描遇到空格了 就会将空格以后的int类型也就是50存入buf[1] 

	ifs.close(); //关闭文件	
}

 最后我们输出这个存入数据之后的数组,完整代码如下。

代码:

#include<iostream> 
#include<fstream>
using namespace std;

void write_func(int a[]) //将数据写入文件
{

	ofstream ofs("test.txt",ios::out);
	
	if(!ofs) 
	{ 	
		cout<<"打开失败1"<<endl;
		exit(1);
	}
	
	for(int i=0;i<10;i++)
	{
		ofs<<a[i]<<" ";
	}
	
	ofs.close(); //关闭文件	
}

void read_func(int buf[])//将文件数据读出到数组
{
	ifstream ifs;
	ifs.open("test.txt",ios::in);
	
	if(!ifs)  
	{ 	cout<<"打开失败2";
		exit(1);
	}
	
	int cnt=0;
	
	while(!ifs.eof()) //eof()文件未结束时返回0 文件结束且正常结束返回1 
		ifs>>buf[cnt++];
//其实这里我理解的是遇到空格或者换行啥的就会cnt++
//意思就是 1 5之间有空格或者换行 一开始cnt==0,buf[0]存入的是1 
//继续从1往后扫描遇到空格了 就会将空格以后的int类型存入buf[1] 
	ifs.close(); //关闭文件	
}

int main()
{
	int a[]={1,50,55,55,44,44,44,44,59,52};
	int buf[10]={0}; //定义buf数组 
	
	write_func(a); 
	read_func(buf);
	
	for(int i=0;i<10;i++)  //打印buf数组 
	{
		cout<<buf[i]<<endl;
	}
	return 0;
 } 

输出结果: 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值