c++从键盘输入字符串并保存成二进制文件

要求:
1、输入字符串中包括:大小写字母、空格、数字等字符,以“#”作为字符串输入的结
束条件;
2、对输入的字符进行加密并保存,以二进制文件方式保存,用户可以输入保存路径,
如:C:\file.txt ;
3、打开文件时,对加密文件进行解密并显示在屏幕上。
[实验提示]
1、使用cin 获取输入字符时,遇到空格时终止读取字符,为了避免这种情况,不能简单使用cin 来获取输入字符;
2、加密方式:
将字母 A 变成E,a 变成e,即将字母变成其后的第4 个字母,W 变A,X 变成B,Y
变成C,Z 变成D,w 变a,x 变成b,y 变成c,z 变成d。
解密方式:即加密方式的逆过程。

第1个回答  推荐于2016-11-23
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
ofstream oufile("file.txt",ios::binary);
char ab[1000];
cin.get(ab,1000,'#');//参数=>数组地址,地址长度,输入结束符号

for(int i=0;ab[i]!='\0';i++)//加密
{
if(ab[i]<='Z'&& ab[i]>='A')
ab[i]=(ab[i]-'A'+4)%('Z'-'A')+'A';
else if(ab[i]<='z' && ab[i]>='a')
ab[i]=(ab[i]-'a'+4)%('z'-'a')+'a';
}
oufile<<ab;
oufile.close();
ifstream xx("file.txt");
char ch;
while(xx>>noskipws>>ch)//解密
{
if(ch<='Z' && ch>='A')
ch=(ch+'Z'-'A'-4-'A')%('Z'-'A')+'A';
else if(ch<='z' && ch>='a')
ch=(ch+'z'-'a'-4-'a')%('z'-'a')+'a';
cout<<ch;
}
return 0;
}本回答被提问者采纳
相似回答