⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 简单分栏式加密的算法
💻 CPP
字号:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
using std::ifstream;
using std::ofstream;
bool encrypt();     //加密函数
bool decipher();   //解密函数

int main()
{
	int b;
	cout<<"输入0或1: 1对文件加密;0对文件解密."<<endl;
	cin>>b;
	if(b) encrypt();   
	else decipher();
	return 0;
}

bool encrypt()        //加密
{
	ifstream fin("fin.txt",ios::in);
	ofstream fout("fout.txt",ios::out);
	char ch;
	int n;
	string string1,string2;
	n=0;
	while (fin>>ch)
	{
		if(n%2==0)        //把下标是偶数的字符依次读入并赋给字符数组string1			
			string1+=ch;
		else             //把下标是奇数的字符依次读入并赋给字符数组string2
			string2+=ch;
		n++;
	}
	string1+=string2;
	fout<<string1;
	return true;
}

bool decipher()      //解密
{
	ifstream fin("fout.txt",ios::in);
	ofstream fout("fin2.txt",ios::out);
	char ch;
	string string1,string2,string3;
    while(fin>>ch)   //把文件中的字符依次读入字符串string1中
		string1+=ch;
	int size=string1.size();
	if (size%2==0)      //如果字符串长度为偶数
	{  
			string2=string1.substr(0,size/2);          //把前size/2个字符赋给字符串string2
			string3=string1.substr(size/2,size/2+1);  //把剩余的字符赋给字符串string3
	}
	else       //为奇数时
	{
			string2=string1.substr(0,size/2+1);
			string3=string1.substr(size/2+1,size/2);
	}
	for(int i=0;i<size;i++)  //输出翻译后的明文
		fout<<string2[i]<<string3[i];
	return true;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -