06 C语言文件加解密
Posted a136447572
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了06 C语言文件加解密相关的知识,希望对你有一定的参考价值。
1 读文件
void fileTest01(){
char * fileNameStr = "D:\\\\text1.txt";
FILE * file = fopen(fileNameStr,"r");
if (!file){
printf("文件打开失败 地址%s",fileNameStr);
exit(0); // 退出程序
}
// 定义缓存区
char buffer[10];
// 1.缓冲区buffer, 2:长度10, 3:文件指针变量
while (fgets(buffer, 10, file)) {
printf("%s\\n", buffer);
}
// 关闭文件
fclose(file);
}
2 写文件
void fileTest02(){
char * fileNameStr = "D:\\\\text2.txt";
FILE * file = fopen(fileNameStr,"w");
if (!file){
printf("文件打开失败 地址%s",fileNameStr);
exit(0); // 退出程序
}
fputs("this is a file",file);
fclose(file);
}
3 二进制文件来复制 rb wb
void fileTest03(){
char * fileNameStr = "D:\\\\text1.txt"; //来源
char * fileNameStrCopy = "D:\\\\text3.txt"; //目标
FILE * file = fopen(fileNameStr,"rb");
FILE * fileCopy = fopen(fileNameStrCopy,"wb");
if (!file || !fileCopy) {
printf("文件打开失败 地址");
exit(0); // 退出程序
}
int buffer[512];
int len; // 每次读取的长度
while ((len = fread(buffer, sizeof(int), 512 , file)) != 0) {
fwrite(buffer, sizeof(int), len, fileCopy);
}
// 关闭文件
fclose(file);
fclose(fileCopy);
}
3.1 (len = fread(buffer, sizeof(int), 512 , file))
3.2 fwrite(buffer, sizeof(int), len, fileCopy);
5 // 获取文件大小
void fileTest04(){
char * fileNameStr = "D:\\\\text1.txt"; //来源
FILE * file = fopen(fileNameStr,"rb");
if (!file){
printf("文件打开失败 地址%s",fileNameStr);
exit(0); // 退出程序
}
// SEEK_SET(开头) SEEK_CUR(当前) SEEK_END(结尾)
fseek(file, 0, SEEK_END);
// 走到这里之后:file有了更丰富的值,给你的file指针赋值,挪动的记录信息
// 读取 刚刚给file赋值的记录信息
// 其实此函数目的是:计算偏移的位置,ftell 从 0 开始统计到当前(SEEK_END)
long file_size = ftell(file);
printf("%s文件的字节大小是:%ld\\n", fileNameStr, file_size);
// 8 字节 (8 字节)
// 关闭文件
fclose(file);
}
fseek(file, 0, SEEK_END);
6 long file_size = ftell(file);
7 文件加密
void fileTest05(){
char * fileNameStr = "D:\\\\text1.txt"; //来源
char * fileNameStrEncode = "D:\\\\text4.txt"; //目标
FILE * file = fopen(fileNameStr,"rb");
FILE * fileEncode = fopen(fileNameStrEncode,"wb");
if (!file || !fileEncode) {
printf("文件打开失败 地址");
exit(0); // 退出程序
}
int c; // 接收读取的值
// fgetc(文件指针) 返回值 EOF = end fo file
while ((c = fgetc(file)) != EOF) {
// 加密操作
fputc(c ^ 5, fileEncode ); // 写入到 fileEncode D:\\Temp\\IMG_encode.jpg(加密后的图片)
}
// 关闭文件
fclose(file);
fclose(fileEncode);
}
8 文件解密
void fileTest06(){
char * fileNameStr = "D:\\\\text4.txt"; //来源
char * fileNameStrDecode = "D:\\\\text5.txt"; //目标
FILE * file = fopen(fileNameStr,"rb");
FILE * fileDecode = fopen(fileNameStrDecode,"wb");
if (!file || !fileDecode) {
printf("文件打开失败 地址");
exit(0); // 退出程序
}
int c;
while ((c = fgetc(file)) != EOF) {
// 解密操作 1111 ^ 5 = 10;(还原)
fputc(c ^ 5, fileDecode);
}
fclose(file);
fclose(fileDecode);
}
以上是关于06 C语言文件加解密的主要内容,如果未能解决你的问题,请参考以下文章
如何用C语言对文件进行加密和解密?急求......................