一个循环控制问题——急!!!

来源:百度知道 编辑:UC知道 时间:2024/09/22 22:19:18
void main()
{ char c;
while(1)
{printf("请选择加密(e),解密(d)或退出(q)\n");
scanf("%c",&c);
if(c=='e')
{printf("加密\n");
encryption();
}
else if(c=='d')
{printf("解密\n");
deccryption();
}
else if(c=='q')
break;
else
printf("选择错误");
}
}

代码如上,两个函数没问题,为啥执行完一片后会显示出两个“请选择加密(e),解密(d)或退出(q)”
要用C写的

2楼说的很好while中加个fflush(stdin);函数就好
#include "stdio.h"
main()
{ char c;
while(1)
{printf("123\n");
scanf("%c",&c);
if(c=='e')
{printf("234\n");

}
else if(c=='d')
{printf("456\n");

}
else if(c=='q')
break;
else
printf("789\n");
fflush(stdin);
}
}

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
char c;
while(1)
{printf("请选择加密(e),解密(d)或退出(q)\n");
scanf("%c",&c);
if(c=='e')
{printf("加密\n");
break;
//encryption();
}
else if(c=='d')
{printf("解密\n");
//deccryption();
break;
}
else if(c=='q')
break;
else
printf(&qu