关于printf和gets
printf("请输入明文:\n");
gets(dtext);
printf("请输入密钥:\n");
gets(key);
这里的运行结果是:
有没有办法在输入明文之后再显示“请输入密钥”?
[解决办法]
......
你这里是因为你前面的 输入 1[回车]
1读取 回车留在缓冲区
后面的第一个gets直接读取 回车 然后就返回
你的dtext已经完成输入 内容是 "\n"
[解决办法]
你的代码已经可以达到的吧!
另外不要用gets了, 用fgets吧!安全!
[解决办法]
char dtext[100];
char key[32];
printf("请输入明文:");fflush(stdout);
rewind(stdin);
fgets(dtext,100,stdin);
if ('\n'==dtext[strlen(dtext)-1]) dtext[strlen(dtext)-1]=0;
printf("请输入密钥:");fflush(stdout);
rewind(stdin);
fgets(key,32,stdin);
if ('\n'==key[strlen(key)-1]) key[strlen(key)-1]=0;