文件操作——命令行参数(一个简单的文件压缩程序)

编程入门 行业动态 更新时间:2024-10-12 03:22:18

文件操作——<a href=https://www.elefans.com/category/jswz/34/1771327.html style=命令行参数(一个简单的文件压缩程序)"/>

文件操作——命令行参数(一个简单的文件压缩程序)

文件操作——命令行参数(一个简单的文件压缩程序)

下面的程序把一个文件中选定的数据拷贝到另一个文件中。
该程序同时打开了两个文件,以“w””r“分别打开,该程序以保留每三个字符在中的第一个字符的方式压缩第一个文件中的内容,最后把压缩的文件放入第二个文件,并且更改第二个文件的后缀名为.red

/** @Author: Your name* @Date:   2020-03-01 20:44:40* @Last Modified by:   Your name* @Last Modified time: 2020-03-01 20:48:16*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#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 coundn't open the file\"%s\"\n",argv[1]);exit(EXIT_FAILURE);}//设置输出strncpy(name,argv[1],LEN-5);name[LEN - 5] = '\0';//字符串以'\0'结尾strcat(name,".red");//给文件名加上.red后缀名if((out = fopen(name,"w"))==NULL)//打开要写入的文件,如果打开失败则发送消息到标准输出//也就是屏幕{fprintf(stderr,"Can't creat output file.\n");exit(3);//非零值表示异常结束程序}while((ch=getc(in))!=EOF)//getc()函数读到文件结尾时返回EOF{if(count++ % 3==0)//每三个写到另一个文件中{putc(ch,out);//写到out指针指向的文件中}}if(fclose(in)!=0||fclose(out)!=0)//关闭文件,如果关闭成功则返回0,否则返回EOF{fprintf(stderr,"Error in closing files\n");}system("pause");return 0;
}

假设可执行文件名是file.exe,待读取的文件名是eddy,该文件包含下面一行内容:

So even Eddy came oven ready.

命令如下:

file.exe eddy,txt

待写入的文件名为eddy.txt.red,该程序把输出显示在eddy.txt.red中,而不是屏幕上。
打开eddy.txt.red内容如下:

Send money

具体操作入下:

  • 先把盘符定义到F盘:
  • 然后再F盘中定义到文件的路径:
  • 最后输入命令行参数:file.exe eddy.txt

    最后我们可以看到在路径下新创建了一个名为eddy.txt.red的文件

    值得注意的是fopen()printf()所不同的是,fprint()的第一个参数必须为一个文件指针,程序中使用stderr指针把错误发送到标准错误。

所谓标准错误,其实就如同标准输出,指的是屏幕

更多推荐

文件操作——命令行参数(一个简单的文件压缩程序)

本文发布于:2023-07-27 22:09:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1226445.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令行   文件压缩   参数   操作   简单

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!