0%

C语言实现对文本文件内容的加密和解密

之前折腾了字符串的加密和解密,今天就进阶一下 (つд⊂) ,折腾了对文本文件内容的加密和解密,写下本文以作笔记。

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *fp1,*fp2,*fp3,*fp4;
printf("输入数字0选择加密,输入数字1选择解密。\n");
printf("输入数字:");
int x;
scanf("%d",&x);
if(x==0)
{
if((fp1=fopen("G:\\来自 Dev-C++\\待加密的文本文件.txt","r"))==NULL)
{
printf("待加密的文本文件无法打开!");
}
int ch0; //定义一个用于存放fgetc()函数返回值的整型变量(因为需要容纳的EOF为负数,char不能是负数,所以返回值类型不能是char)
fp2=fopen("G:\\来自 Dev-C++\\已加密的文本文件.txt","w");
while((ch0=fgetc(fp1))!=EOF)
{
ch0++; //每个字符对应的ASCII值加上1
fputc(ch0,fp2);
}
int ch0_0;
if((ch0_0=feof(fp1))!=0) //判断文件内部指针是否指向文件末尾
{
printf("待加密的文本文件已完成加密!");
}
else
{
int CH0;
if((CH0=ferror(fp1))!=0) //判断文件操作是否发生错误
{
printf("待加密的文本文件读取发生错误!");
}
}
fclose(fp1); //关闭文件
fclose(fp2);
}
if(x==1)
{
if((fp3=fopen("G:\\来自 Dev-C++\\已加密的文本文件.txt","r"))==NULL)
{
printf("已加密的文本文件无法打开!");
}
int ch1;
fp4=fopen("G:\\来自 Dev-C++\\已解密的文本文件.txt","w");
while((ch1=fgetc(fp3))!=EOF)
{
ch1--;
fputc(ch1,fp4);
}
int ch1_1;
if((ch1_1=feof(fp3))!=0)
{
printf("加密后的文本文件已解密!");
}
else
{
int CH1;
if((CH1=ferror(fp3))!=0)
{
printf("加密后的文本文件读取发生错误!");
}
}
fclose(fp3);
fclose(fp4);
}
return 0;
}