69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LEN 40
int main(int argc,char *argv[])
{
FILE *in,*out;
int ch;
char name[LEN];
int count=0;
if(argc<2) //检查命令行参数
{
fprintf(stderr,"Usage:%s Filename\n",argv[0]);
getchar();
exit(1);
}
if((in=fopen(argv[1],"r"))==NULL)
{
fprintf(stderr,"打开文件\"%s\"失败\n",argv[1]);
getchar();
exit(2);
}
strcpy(name,argv[1]);
strcat(name,".red"); //生成一个后缀为.red的新文件名
if((out=fopen(name,"w+"))==NULL)
{
fprintf(stderr,"打开文件\"%s\"失败\n",name);
getchar();
exit(3);
}
while((ch=getc(in))!=EOF) //每隔三个复制一个字符
{
if(count++%3==0)
{
putc(ch,out);
}
}
while((ch=getc(out))!=EOF) //打印文件内容
{
putc(ch,stdout);
}
while((ch=getc(in))!=EOF)
putc(ch,stdout);
if(fclose(in)!=0||fclose(out)!=0)
{
fprintf(stderr,"关闭文件\"%s\"或\"%s\"失败\n",argv[1],name);
getchar();
exit(4);
}
return 0;
}