文件加密2——基础版(限文本)
2016-03-05 22:31
162 查看
这个就比上一个版本简单很多。
并且每次操纵的也都不是一行。
而是每次一个字符,这样效率就比较低并且编码方式 也是采用每次就加那么一个固定写死的字符。就比较坑。。。
并且每次操纵的也都不是一行。
而是每次一个字符,这样效率就比较低并且编码方式 也是采用每次就加那么一个固定写死的字符。就比较坑。。。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MYKEY 6 #pragma warning(disable:4996) void readFile(FILE *); void copyFile(const FILE *, FILE *); void codeFile(const FILE *, FILE *); void decodeFile(const FILE *, FILE *); void progress(const int, const char **pras); int main(int argc,char **argv){ progress(argc, argv); //FILE *pf = fopen("code.txt", "r"); //FILE *pfw = fopen("decode.txt", "w"); //readFile(pf); //copyFile(pf,pfw); //decodeFile(pf, pfw); //char c = 0; //char cs[10] = { 0 }; 两种初始化方式 //c = getc(pf); // putc(c, pfw); getchar(); return 0; } void progress(const int parnum, const char **pracon){ if (parnum < 4){ printf("参数过少,需要四个"); } else if (parnum>4){ printf("参数过多,需要四个"); } else{ if (strcmp(pracon[1], "code") == 0){ //这里还能提取呢 //1 FILE *src = fopen(pracon[2], "r"); FILE *dest = fopen(pracon[3], "w"); codeFile(src, dest); fclose(src); fclose(dest); } else if (strcmp(pracon[1], "decode") == 0){ //这里还能提取呢 //1 FILE *src = fopen(pracon[2], "r"); FILE *dest = fopen(pracon[3], "w"); decodeFile(src, dest); fclose(src); fclose(dest); } else{ printf("第二个参数需要是:code 或者 decode"); } } } void decodeFile(const FILE *src, FILE *dest){ if (src != NULL&&dest != NULL){ char c = 0; while ((c = getc(src)) != EOF){ c -= MYKEY; putc(c, dest); } } } void codeFile(const FILE *src, FILE *dest){ if (src != NULL&&dest != NULL){ char c = 0; while ((c = getc(src)) != EOF){ c += MYKEY; putc(c, dest); } } } void copyFile(const FILE *src,FILE * dest){ //我说怎么总执行总不对劲,因为,每次还都输出了,这个文件。其实也就是因为每次都输出了这个文件。所以每次等到要拷贝的时候,文件已经移动到了文件的结尾了。所以每次拷贝都是空的文件。 if (src != NULL&&dest != NULL){ char c = 0; //char cs[10] = { 0 }; 两种初始化方式 printf("f1"); while((c=getc(src))!=EOF){ //printf("f1"); putc(c, dest); } printf("f2"); } else{ printf("到这了?"); } } void readFile(FILE *p){ if (p != NULL){ char c; while ((c = getc(p)) != EOF){ //这个目录好诡异。。。在同名子目录下,比如我们这个工程叫做文件复制,那么这个目录在 文件复制\文件复制下面。 printf("%c", c); } } else{ printf("没有"); } }
相关文章推荐
- 关于blob,clob,varchar2
- windows客户端开发--如何修复输入法提示框位置不正确
- Android开发搭环境步骤, ADT, JDK, SDK, NDK, Eclipse, CDT
- vivo软件开发笔试编程题:
- windows客户端开发--如何修复输入法提示框位置不正确
- php显示判断数组是不是带下标的二维数组
- 项目开发环境搭建手记(5.Jenkins搭建)
- Nokia 5110 LCD资料
- 版本控制SVN的使用笔记
- Python Select 解析
- noj1044(并查集)
- Ubuntu run in Raspberry pi 2 之SD 卡镜像篇(ROS开发准备)
- imageView属性介绍
- HDU 5636 Shortest Path 暴力
- 加_T的原因
- 学习JAVA环境搭建之下载安装MyEclipse 6.5
- 提示:正弦曲线资料
- 【leetcode】第7题:逆转数字
- android之textview属性介绍
- iOS网络判断