来自菜鸟的日程-------c语言基础篇14(文件)

本文深入探讨了文件操作的基础知识,包括文件的打开、读取、写入及关闭等关键操作。详细解析了fopen、fread、fwrite、fclose等函数的使用方法,并通过实例展示了文件复制和读写的实现过程。

/*
fclose的作用???
文件
文本文件:ASCLL码 84724不是数字,都是字符
二进制文件:除了文本文件以外都是二进制文件,看不懂,信息比较全
1、节约空间
写平衡:循环使用
文件指针:寻找文件
FILE *file
struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;
buffer:数据的存储位置
size_t fread(
void *buffer
size_t size//一次读几个
size_t count//读取的总次数
FILE *stream//打开文件流
)

size_t fwrite(
    void *buffer//往文件的内容
	size_t size//每次写入的字节
	size_t count// 总共写多少次
	FILE *stream// 往哪个文件写

fopen
fread
fwrite
fclose
fseek//将文件指针移到指定位置
ftell
fgetc
stdin
stdout

wb:以二进制的形式写
如果有文件,将原来的文件清除掉
如果没有,自己创建文件

int fseek(
FILE *stream,//移动的文件指针
long offset,//偏移量
int origin//位置
);

	SEEK_CUR 
	文件指针的当前位置。
	SEEK_END 
	文件结尾。
	SEEK_SET 
	文件开头

buffer
数据的存储位置。

size
项目大小 (以字节为单位)。

count
要读取的最大项数。

stream
为 FILE 结构的指针。

*/

/*文件拷贝

void CopyMp(const char *src,const char *dest)
{
	assert(dest != NULL && src != NULL);
	FILE *fr = fopen(src,"rb");
	FILE *fw = fopen(dest,"wb");
	 assert(fr != NULL && fw != NULL);
	char ch;
	int len = 0;
	while((len = fread(&ch,sizeof(char),1,fr)) > 0)
	{
		fwrite(&ch,sizeof(char),len,fw);
	} 
	fclose(fr); 
	fclose(fw);
} 
int main()
{
	char *srcpath = "D:\\cat.jpg";
	char *destpath = "D:\\zxc.jpg";
	CopyMp(srcpath,destpath);
	return 0;
}

*/

/*
int main()
{
char buffer[10];
int n;
fread(buffer,sizeof(char),10,stdin);
fwrite(buffer,sizeof(char),10,stdout);
return 0;

}
*/

/*读

int main()
{
	const char *path="D:\\abc.txt";
	FILE *fr=fopen(path,"r");//以二进制的形式写
	assert( fr != NULL);
	char ch;
	while(fread(&ch,sizeof(char),1,fr)>0)//读取字符的个数
	{
		putchar(ch); //打印字符  不会换行
	}
	 putchar('\n');
	fseek(fr,-3,SEEK_CUR);
	while(fread(&ch,sizeof(char),1,fr)>0)//读取字符的个数
	{
		putchar(ch); //打印字符  不会换行
	}
	 putchar('\n');
	 return 0;
}

*/

/* 写入

int main()
{

	const char *path="D:\\fr.txt";
	FILE *fr=fopen(path,"r");
	assert(fr!=0);
	//读文件
	 
	char buffer[100]={};
	fread(buffer,sizeof(char),100,fr); 
	FILE *fw=fopen(path,"w");
	 
	char *str="here is tulun";//写进一个字符串
	fwrite(str,sizeof(char),strlen(str),fw);
	fclose(fw);//关闭文件
	printf("%s\n",buffer);
     
 

    
    const char *path2="D:\\fr.txt";
    FILE *fw=fopen(path2,"wb");//以二进制的形式写
	//如果有文件,将原来文件的内容清除掉
	//如果没有,自己创建文件
	  
	int a=10;
	fwrite(&a,sizeof(int),1,fw); 
	fclose(fw);//关闭文件
	 //fclose的作用???  


	FILE *fr=fopen(path2,"rb");
	int b=0;
	fread(&b,sizeof(int),1,fr);
    printf("%d\n",b);
	fclose(fr);//关闭文件

 




	return 0;
}

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值