| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1398 人关注过本帖
标题:C语言求解压缩与结压问题
取消只看楼主 加入收藏
fangfangff
Rank: 1
等 级:新手上路
威 望:2
帖 子:479
专家分:0
注 册:2006-12-22
收藏
 问题点数:0 回复次数:7 
C语言求解压缩与结压问题

首先把一些字符输入到一个文件中,然后对里面的字符进行压缩和解压 用C语言编写程序来实现...

请各位帮帮忙哈!!!谢谢.........

搜索更多相关主题的帖子: C语言 求解 压缩 
2007-06-17 17:17
fangfangff
Rank: 1
等 级:新手上路
威 望:2
帖 子:479
专家分:0
注 册:2006-12-22
收藏
得分:0 
谢谢你哈!!
你那个程序是怎么实现的啊!!
怎么好象都没有实现功能呢????
可以说说吗??????
好象有写函数也没有用处啊!!!

千里冰封---My Love 尽管相隔千里 , 依然拥有冰封
2007-06-17 22:53
fangfangff
Rank: 1
等 级:新手上路
威 望:2
帖 子:479
专家分:0
注 册:2006-12-22
收藏
得分:0 

#include <stdio.h>
#include<stdlib.h>
int reduce(char *file_name); //压缩一个文件
int dell_fill(char *file1_name,char *file2_name);//删除两个文件
int re_file(char *file1_name,char *file2_name);//解压缩两个文件

void main()
{
char *file_name="E:\\file.txt";

reduce(file_name);

puts("\nend!");

getchar();
}

int reduce(char *file_name)
{
FILE *fp,*fp1,*fp2;
long fnum=0;
int f=0,f_h=1,flag,i;
char *file1_name,*file2_name;


if((fp=fopen(file_name,"rb"))==NULL)
{
printf("Open the \"%s\" error!",file_name);
getchar();
exit(1);
}
i=0;
flag=0;
do
{
if(file_name[i]=='.')
{
file1_name[i]='a';
file1_name[i+1]='.';

file2_name[i]='b';
file2_name[i+1]='.';

flag=1;
}
else
{
file1_name[i+flag]=file_name[i];

file2_name[i+flag]=file_name[i];
}

}while(file_name[i++]!=0);

if(!flag)
{
file1_name[i]='a';

file2_name[i]='b';
}

if((fp1=fopen(file1_name,"w+"))==NULL)
{
printf("Creat the \"%s\" error!",file1_name);
getchar();
exit(1);
}

if((fp2=fopen(file2_name,"w+"))==NULL)
{
printf("Creat the \"%s\" error!",file2_name);
getchar();
exit(1);
}

f_h=fgetc(fp);
while(f!=-1)
{
f=fgetc(fp);
if(f_h==f)
{
fnum++; //解除长整形限制
}
else
{
do
{
fputc(fnum%256,fp1);
fputc(f_h,fp2);
}while(fnum/=256);
fnum=0;
}

f_h=f;
}

fclose(fp);
fclose(fp1);
fclose(fp2);

re_file(file1_name,file2_name);
dell_fill(file1_name,file2_name);
return 0;
}

int dell_fill(char *file1_name,char *file2_name)
{
unlink(file1_name);
unlink(file2_name);
return 0;
}

int re_file(char *file1_name,char *file2_name)
{
FILE *fp,*fp1,*fp2;
int f=0,f_h,i,flag;
char *file_name;

if((fp1=fopen(file1_name,"rb"))==NULL)
{
printf("Creat the \"%s\" error!",file1_name);
getchar();
exit(1);
}
if((fp2=fopen(file2_name,"rb"))==NULL)
{
printf("Creat the \"%s\" error!",file2_name);
getchar();
exit(1);
}

i=0;
flag=0;
do
{
if(file1_name[i]=='.')
{
file_name[i-1]='.';

flag=-1;
}
else
file_name[i+flag]=file1_name[i];

}while(file1_name[i++]!=0);

if(!flag)
file_name[i-1]=0;

if((fp=fopen("E:\\file.txt","wt"))==NULL)
{
printf("Creat the \"%s\" error!",file_name);
getchar();
exit(1);
}

while(f!=-1)
{
f=fgetc(fp1);
f_h=fgetc(fp2);
for(i=0;i<=f;i++)
{
fputc(f_h,fp);
}
}

fclose(fp);
fclose(fp1);
fclose(fp2);
return 0;
}

这个是你的杰作,你可以作一点注释吗???
我看不懂,怎么运行结束以后就是一个end.这样什么都没有了,
也没有实现压缩和解压的功能,还有里面的
int dell_fill(char *file1_name,char *file2_name);//删除两个文件
int re_file(char *file1_name,char *file2_name);//解压缩两个文件

这两个函数好象没有用处,不起作用.......
分析一下好吗???你觉得我将怎样改才可以啊
还有这里看不明白
do
{
if(file_name[i]=='.')
{
file1_name[i]='a';
file1_name[i+1]='.';

file2_name[i]='b';
file2_name[i+1]='.';

flag=1;
}
else
{
file1_name[i+flag]=file_name[i];

file2_name[i+flag]=file_name[i];
}

}while(file_name[i++]!=0);

if(!flag)
{
file1_name[i]='a';

file2_name[i]='b';
}


千里冰封---My Love 尽管相隔千里 , 依然拥有冰封
2007-06-18 14:44
fangfangff
Rank: 1
等 级:新手上路
威 望:2
帖 子:479
专家分:0
注 册:2006-12-22
收藏
得分:0 
哦,最好是这两天好吗????
它是实现这个功能,但是怎么我运行以后没有实现啊!!
你原来的题目上面就是说输入2222然后压缩后变为42,但是好象没有啊
运行结束以后就生成了一个fil.txt,和原来的file.txt 的内容是一样的啊!!!
还有另外一个函数好象都没有什么用处呢????

千里冰封---My Love 尽管相隔千里 , 依然拥有冰封
2007-06-18 15:40
fangfangff
Rank: 1
等 级:新手上路
威 望:2
帖 子:479
专家分:0
注 册:2006-12-22
收藏
得分:0 
怎么这次有很大的问题呢???
就是不可以运行了啊!!!
好嘛
我加你QQ哈

千里冰封---My Love 尽管相隔千里 , 依然拥有冰封
2007-06-18 17:12
fangfangff
Rank: 1
等 级:新手上路
威 望:2
帖 子:479
专家分:0
注 册:2006-12-22
收藏
得分:0 
真的弄不明白了啊!!!编译没错,但是运行的时候出现内存不能read
是怎么回事啊????好麻烦的东西啊,看也不太明白你的程序....
呵呵,因为才学习C语言一个学期而已,菜鸟一个啊!!!

千里冰封---My Love 尽管相隔千里 , 依然拥有冰封
2007-06-18 17:20
fangfangff
Rank: 1
等 级:新手上路
威 望:2
帖 子:479
专家分:0
注 册:2006-12-22
收藏
得分:0 
我用的编译器是VC++6.0,不知道你用的是哪个啊????
真的做不来好烦啊,这个是我们的课程设计来的啊!!!
星期四要交了啊,真是麻烦!!!!

千里冰封---My Love 尽管相隔千里 , 依然拥有冰封
2007-06-18 23:09
fangfangff
Rank: 1
等 级:新手上路
威 望:2
帖 子:479
专家分:0
注 册:2006-12-22
收藏
得分:0 
哦,是这样啊!!!
那我再改改看嘛!!!
感觉你真的太强了啊!!
好佩服你哦!!!!!
不知道什么时候我才有你一半那么强呢???

千里冰封---My Love 尽管相隔千里 , 依然拥有冰封
2007-06-19 09:40
快速回复:C语言求解压缩与结压问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016175 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved