您的位置:首页 > 其它

文件加密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("没有");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: