读书人

关于printf跟gets

发布时间: 2013-10-07 19:41:22 作者: rapoo

关于printf和gets
printf("请输入明文:\n");
gets(dtext);
printf("请输入密钥:\n");
gets(key);



这里的运行结果是:关于printf跟gets
有没有办法在输入明文之后再显示“请输入密钥”?
[解决办法]
......
你这里是因为你前面的 输入 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;

读书人网 >C语言

热点推荐