栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习笔记---一个简单的文件压缩示例

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习笔记---一个简单的文件压缩示例

  通过一个简单的文件文件压缩例子,来学习文件操作的相关函数。该程序以只读的方式 “r” 打开第一个文件,以只写的方式“w”打开第二个文件。将第一个文件中每隔3个字符取出一个字符存储在第二个文件中。第二个文件的文件名是第一个文件名后面加上 .red 后缀。

#include 
#include 
#include 
#include 

#define LEN 10
int main()
{
	int ch;
	FILE *in,*out;
	char name[LEN];
	int count = 0;
	//打开文件1 
	if((in = fopen("file1.txt","r") )==NULL) {		//读模式打开文件1 
		fprintf(stderr,"open error!rn");			//若文件打开失败,输出错误提示
		exit(EXIT_FAILURE);
	}
	//设置输出
	strncpy(name,"file1",LEN-5);					//拷贝文件名,存储在name数组中
	name[LEN - 5]='';
	strcat(name,".red");							//在文件名后添加 .red
	 if((out = fopen(name,"w") )==NULL) {			//写模式打开文件2 
		fprintf(stderr,"can not cread out file! rn");
	}
	//拷贝数据
	while( (ch = getc(in)) != EOF)
	{
		if(count++ %3 ==0)							//每隔3个字符存储一次
			putc(ch,out);
	 } 
	//收尾工作
	if( fclose(in) != 0 || fclose(out) != 0)		//关闭打开的两个文件
	{
			fprintf(stderr,"Error in closing files! rn");
	 } 
	system("pause");
	return 0;
}

在文件1中输入以下内容:

程序执行完成之后,就会生成一个新的文件。文件名和第一个文件一样,但是后缀变成了.red。

用记事本打开两个文件,对比里面的内容。

通过内容对比可以看出,文件2中的内容是文件1中每隔3个字符取一个组成的。相当于把一个文件的大小压缩成原来的1/3.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352650.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号