该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
#define LEM 40int main(int argc, char *argv[]) {
FILE *in, *out;
int ch;
char name[LEM];
int count = 0;
//检查命令行参数
if(argc < 2)
{
fprintf(stderr, "usage: %s filename\n",argv[0]);
exit(1);
}
//设置输入
if((in = fopen(argv[1],"r")) == NULL)
{
fprintf(stderr,"i could not open the file \"%s\"\n",argv[1]);
printf("error: %s\n", strerror(errno));
exit(2);
}
//设置输出
strncpy(name, argv[1], LEM - 5);//拷贝文件名
name[LEM - 5] = '\0';
strcat(name, ".red");//在文件名后添加red
if((out = fopen(name, "w")) != NULL);
{ //以写的模式打开文件
fprintf(stderr,"cannot 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;
}