程序清单13.2一个简单的压缩程序

//reducto.c -把文件压缩成原来的1/3!

include

include

include

define LEN 40

int main(int argc, char *argv[])
{
FILE *in, *out; //声明两个指向FILE的指针
int ch;
char name[LEN]; //输出文件名
int count = 0;

//检查命令行参数
if (argc < 2)
{
    fprintf(stderr, "Usage:%s filename\n", argv[0]);
    exit(EXIT_FAILURE);
 }

//设置输入
if ((in = fopen(argv[1], “r”)) == NULL)
{
fprintf(stderr, “I couldn’t open the file \”%s\”\n”, argv[1]);
exit(EXIT_FAILURE);
}
//设置输出
strncpy(name, argv[1], LEN - 5); //拷贝文件名
name[LEN - 5] = ‘\0’;
strcat(name, “.red”); //在文件名后添加.red
if ((out = fopen(name, “W”)) == NULL)
{ //以写模式打开文件
fprintf(stderr, “Can’t create output file.\n”);
exit(3);
}
//拷贝数据
while ((ch = getc(in)) != EOF)
if (count++ % 3 == 0)
putc(ch, out); //打印3个字符中的一个字符
//收尾工作
if (fclose(in) != 0 || fclose(out) != 0)
fprintf(stderr, “Error in closing files\n”);

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值