原帖地址:http://bbs.fishc.com/forum.php?mod=viewthread&tid=38341&page=1&extra=#pid1336928
==================================================================
scanf():
getch():
getchar():
gets():
==================================================================
代码:
#include<stdio.h>
#include<string.h>
void jiami(char str[])
{
int i=0;
while(str[i]!='\0')
{
str[i]=str[i]+i+5;
i++;
}
}
void jiemi(char str[])
{
int i=0;
while(str[i]!='\0')
{
str[i]=str[i]-i-5;
i++;
}
}
int main()
{
char str[100];
int n=0;
printf("输入你的选择:1.加密 2.解密 3.退出\n");
gets(str); //这里为什么用gets()函数会直接跳过呢???用scanf就可以!!
printf("==1:%d,%s==\n",strlen(str),str);
while(n!=1 && n!=2 && n!=3)
{
printf("输入(%d)有误,请重新输入!\n",n);
printf("输入你的选择:1.加密 2.解密 3.退出\n");
scanf("%d",&n);
fflush(stdin);//scanf("%*c");
}
while(n!=3)
{
printf("==(n=%d)==\n",n);
if(n==1)
{
printf("输入要加密的字符串: ");
gets(str);
printf("==2:%d,%s==\n",strlen(str),str);
jiami(str);
printf("加密后结果是: ");
printf("%s\n",str);
printf("输入你的选择:1.加密 2.解密 3.退出\n");
scanf("%d",&n);
fflush(stdin);//scanf("%*c");
while(n!=1 && n!=2 && n!=3)
{
printf("输入有误,请重新输入!\n");
printf("输入你的选择:1.加密 2.解密 3.退出\n");
scanf("%d",&n);
fflush(stdin);//scanf("%*c");
}
}
else
{
printf("输入要解密的字符串: ");
scanf("%s",str);
fflush(stdin);//scanf("%*c");
jiemi(str);
printf("解密后结果是: ");
printf("%s\n",str);
printf("输入你的选择:1.加密 2.解密 3.退出\n");
scanf("%d",&n);
fflush(stdin);//scanf("%*c");
while(n!=1 && n!=2 && n!=3)
{
printf("输入有误,请重新输入!\n");
printf("输入你的选择:1.加密 2.解密 3.退出\n");
scanf("%d",&n);
fflush(stdin);//scanf("%*c");
}
}
}
}