c++ 凯撒加密

本文介绍了一个使用C++实现的简单程序,该程序能够从文件中读取文本,并采用凯撒加密算法对读取的内容进行加密处理,然后将加密后的文本保存到新的文件中。文中涉及的技术包括文件流操作、字符数组处理及基本的加密逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


#include <iostream>
#include <fstream>
using namespace std;

int main(){
  ifstream iFile("MySong.txt");
  //get the length of the file
  iFile.seekg(0,ios::end);
  int nFileLen = iFile.tellg();
  iFile.seekg(0,ios::beg);
  //allocate memory
  char* str = new char[nFileLen+1];
  //read data as block
  iFile.read(str,nFileLen);//读取nFileLen个字节的数据并存储到str变量
  iFile.close();
  str[nFileLen]=0;
  int nCaesar = 3;//假设Caesar移位为3
  int n=0;//记录回车数目
  for(int i=0;i< nFileLen;i++){
    //不做任何处理,直接输出字符,看是否出现\r\n
    printf("%c",str[i]);
    //开始对字母进行加密,如果位移后大于'z'或'Z',则减去26
    if((str[i] > 'a') && (str[i] < 'z')){
      str[i] += nCaesar;
      if(str[i] > 'z'){
        str[i] -= 26;
      }
    }else if((str[i] > 'A') && (str[i] < 'Z')){
        str[i] += nCaesar;
        if(str[i] > 'Z'){
          str[i] -= 26;
        }
    }
  }
  
    ofstream oFile("mySong2.txt");
    oFile.write(str,nFileLen);
    oFile.close();
    delete[] str;
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值