void DES_USE_E(void)
{
int output[64]={0};
char MIN[9]={0};
char MI[9]={0};
printf("**********基于DES加密、解密软件实现**********\n");
printf("\n请输入需要加密的明文:\n");
gets(MIN);
printf("\n请输入加密密钥:\n");
gets(MI);
DES_Efun(MIN,MI,output);
printf("加密密文:\n");
for(int i=0;i<64;i++)
{
printf("%2d",output[i]);
if((i+1)%8==0)
printf("\n");
}
printf("\n");
printf("解密结果\n");
DES_Dfun(output,MI,MIN);
printf("解密明文为:\n");
for( i=0;i<8;i++)
{
printf("%c",MIN[i]);
}
printf("\n");
}
第1个回答 2014-06-25
缓冲区可能有未读取的换行,
在第一个gets前面添加
fflush(stdin);即可