• C 读写文件以及简单的文件加密


    温习了下文件的读写操作

    做下笔记

    1》首先是读文件:

    1.在对应的文件夹创建 D:\test\myTest.txt文件,且输入自己待测试的文字内容。

    2.读的代码如下,就会打印出myTest的文件的内容。

    int main()
    {
        char *path = "D:\test\myTest.txt";
    
        FILE *fp = fopen(path, "r");
    
        char buff[500];
        while (fgets(buff, 50, fp))
        {
            printf("%s", buff);
        }
    
        fclose(fp);
        system("pause");
        return 0;
    }

    2》写文件

    比较好理解,直接贴代码

    int main() {
        char *path = "D:\test\myTest_write.txt";
        FILE *fp = fopen(path, "w");
        if (fp == NULL) {
            printf("文件操作失败,直接return");
            return 0;
        }
        char *text = "hello world";
        fputs(text, fp);
        fclose(fp);
        system("pause");
        return 0;
    }

    3》读写非文本文件(读二进制文件)

    int main() {
        char * read_path = "D:\test\myTest.jpg";
        char * write_path = "D:\test\myTest_write.jpg";
        //
        FILE * read_fp = fopen(read_path, "rb");//注意传入的属性值
        //写(实际上就是复制一份)
        FILE * write_fp = fopen(write_path, "wb");
        char buff[50];
        int len = 0;
        while ((len = fread(buff, sizeof(char), 50, read_fp)) != 0)
        {
            fwrite(buff, sizeof(char), len, write_fp);
        }
        fclose(read_fp);
        fclose(write_fp);
        system("pause");
        return 0;
    }

    看了上面,是不是有一点点小成就了呢?都可以读取任意的文件的内容了

    额,没感觉到啥啊。那说明你要好好思考如何举一反三了。

    可读可写,是不是就意味着可以对文件的数据进行操作,让别人看不了文件内容呢?

    答案是肯定的,那就可以写一个简单的文件加密程序吧。

    直接贴成果:

    加密解密方法:

    void myEncodeAnDecode(char prePath[], char resultPath[], int password) {
        FILE * normal_fp = fopen(prePath, "rb");
        FILE * encode_fp = fopen(resultPath, "wb");
        
        int ch;
        while ((ch = fgetc(normal_fp)) != EOF){
            fputc(ch ^ password, encode_fp);
        }
        fclose(normal_fp);
        fclose(encode_fp);
    }

    然后看应用:

    int main() {
        char * oriPath = "D:\picLibrary\xiaoHuangTu.png";//原文件,加密后可删除掉,防止别人查看
        char * showOthersPath = "D:\picLibrary\xiaoHuangEncode.png";//存放加密的文件,给别人看,别人也看不了的文件
        char * newPath = "D:\picLibrary\xiaoHuangDecode.png";//将加密的文件解密出来的文件,可以自己偷偷的查看
    
        //加密
        myEncodeAnDecode(oriPath, showOthersPath, 100);//密码随便搞个100
        //解密
        myEncodeAnDecode(showOthersPath, newPath, 100);
        system("pause");
        return 0;
    }

    这就是一个简单的文件夹解密的核心程序。不妨可以自己去试试,将自己的私密照片视频啥的加密。是不是666呢?

  • 相关阅读:
    MPS和MRP之间有什么样的关系呢
    java中静态代码块详解
    SQL server 分组后每组取出任意一行
    人是否能成功,其实可能很早就能看出来
    国内外产品经理的区别
    Yarn 和 NPM 国内快速镜像(淘宝镜像)
    vue-cli 使用less 遇到的问题 || vue-cli 使用less
    布隆过滤器
    PHP性能优化
    Redis-高并发代言词,为什么做分布式要Redis?
  • 原文地址:https://www.cnblogs.com/bokezhilu/p/7620477.html
Copyright © 2020-2023  润新知