C++中文件的简单使用

这篇博客介绍了C++中文件的基本使用,包括文本文件和二进制文件的区别。文本文件以ASCII码存储,占用空间大但可读;二进制文件直接存储二进制码,占用空间小但不可读。文章讨论了文件流类ofstream, ifstream, fstream,以及get(), put(), getline()等处理文本文件的函数和read(), write()处理二进制文件的函数。博主还分享了自己编写的一个示例代码,该代码实现了从stu_info.dat文件读取并打印学生信息,以及将文件复制到stu_info1.dat。" 136760468,7337247,深度学习:预训练模型的fine-tuning创新实践,"['深度学习', '模型微调', '预训练模型', '自然语言处理', '图像分类']

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

         看了一下C++中关于文件的介绍,现在主要将其整理一下,并且给出使用较为简单的函数来处理相应的文件。C++中的文件主要分为两类:文本文件和二进制文件,其主要区别就是文本文件是以ASCII码的形式存储的,因此存储的时候每一个字符都要占据一个字节,所以占用内存空间比较大,但是是可读文件;而二进制文件存储的时候是将二进制码照原样输出到磁盘文件中,因此不具有可读性,但是占用空间较小。

       文件流类主要有三种形式:输出文件流ofstream,输入文件流ifstream,输入输出文件流fstream.

      对于文本文件主要的处理函数:

     1)get(),put(),以单个字符的形式处理文件

     2)getline(char *buf,int limit,char deline='\n')以字符数组的形式读文件。

    对于二进制文件的处理函数:read(char *buf,int size)读文件函数,write(const *buf,int size)写文件。

下面是我自己写的关于文件处理的代码:主要实现将包含学生学号、姓名、成绩的信息输入到文件stu_info.dat中,然后读该文件并将学生信息打印到屏幕上,并将文件拷贝到stu_info1.dat中;

#include "stdafx.h"
#include <iostream>//编译预处理命令,输入输出流文件
#include <fstream>
#include <iomanip>
#include <math.h>
#include <string.h>
#include <strstream>
using namespace std;
struct stu
{
	int num;
	char name[20];
	float score;
	
};
void main()
{
	int n;
	char a;
	stu *p;
	int i;
	cout<<"input the number of stu:";
	cin>>n;
	p=new stu[n];
	for(i=0;i<n;i++)
		cin>>p[i].num>>p[i].name>>p[i].score;
	ofstream out("E:\\stu_info.dat",ios::out);
	//wirte  
	for(i=0;i<n;i++)
		out<<p[i].num<<'\t'<<p[i].name<<'\t'<<p[i].score<<endl;
	delete [] p;
	out.close();
	ifstream in("E:\\stu_info.dat",ios::in);
	ofstream out1("E:\\stu_info1.dat",ios::out);
	if(!in)
	{
		cout<<"can't open the file"<<endl;
		abort();
	}
	while(!in.eof())//judge the end of file
	{
		in.get(a);
		cout<<a;
		out1.put(a);//copy the file
	}
	in.close();
	out1.close();
	
}

程序运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值