题目要求如下:
#include<iostream>
using namespace std;
int main()
{
int n;
cout<<"1:开始加密||0:退出 ";
while((cin>>n)!=0)
{
cin.sync(); //清空输入缓冲区 ;否则影响cin.getline(str,500)。字符串输入还可用gets(str),同样也要清空之前的输入缓冲区,而且gets()可能导致输入超限
char str[500];
char *p=str; //字符指针p表示它指向的地址存放的是个字符,这个地址为字符串str的地址,同时也是字符串str第一个字符的地址
cin.getline(str,500); //从缓冲区读取字符,最多500字符,识别回车作为输入结束 ,并且自动在字符串后面加'\0'作为结束符
while(*p!='\0') //p从str头到str尾
{
cout<<(char)(*p+4); //*p是个字符--char 类型。*p+4 = char+int,*p会先转换成int型(正好是该字符对应的ASCII码) 。最后再(char)强制转换(将int型结果,也对应ASCII码,转成字符) ,实现输出字符后面第四个字符
p++; //p指向下一个字符。因为字符char类型占一个字节,所以地址加一就是下一个字符地址
}
cout<<endl<<"1:开始加密||0:退出 ";
}
return 0;
}