首页 > 其他 > 详细

文件加密2

时间:2016-03-05 23:35:49      阅读:380      评论:0      收藏:0      [点我收藏+]

这个就比上一个版本简单很多。

并且每次操纵的也都不是一行。

而是每次一个字符,这样效率就比较低并且编码方式 也是采用每次就加那么一个固定写死的字符。就比较坑。。。

 

#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("没有");
    }
}

 

文件加密2

原文:http://www.cnblogs.com/letben/p/5246129.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!