本节涉及到的部分知识在《函数》一章中才会讲到,如果您是初学者,请阅读完该章再来回顾本节。
C语言程序通常是“黑屏”的控制台程序(Console Application),执行一次操作就结束了,要执行同样的操作必须重新启动程序,这样很麻烦。像QQ、360、迅雷等GUI(Graphical User Interface)程序,可以一直运行,一个菜单或选项可以重复点击,无限次执行同一操作。
C语言程序也可以这样!思路就是把相关的菜单和操作(函数)放入一个死循环内。即:
- while(1){
- // 要执行的操作
- }
例如,对于一个加密解密的程序,要实现的功能有:
相应的菜单也有这些,请看下面的代码:
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- //函数原型
- void printMenu();
- void pause(const char *msg);
- int main(){
- char action;
- while(1){
- system("cls"); //清屏
- printMenu(); //显示主菜单
- action = getch(); //读取用户操作
- fflush(stdin); // 刷新(清空)stdin缓冲区
- switch(action){
- case '1':
- pause("文件加密成功!按任意键返回...");
- break;
- case '2':
- pause("文件解密成功!按任意键返回...");
- break;
- case '3':
- pause("更改密码成功!按任意键返回...");
- break;
- case '4':
- exit(0);
- default:
- pause("没有相应的菜单!按任意键返回...");
- }
- }
- return 0;
- }
- //打印主菜单
- void printMenu(){
- printf("******************* 文本加密解密软件 *******************\n");
- printf("* *\n");
- printf("* 请从下面的菜单中选择你要进行的操作: *\n");
- printf("* 1. 文件加密 *\n");
- printf("* 2. 文件解密 *\n");
- printf("* 3. 更改密码 *\n");
- printf("* 4. 退出系统 *\n");
- printf("* *\n");
- printf("********************************************************\n");
- }
- //暂停程序
- void pause(const char *msg){
- printf("%s", msg);
- getch();
- printf("\n");
- }
运行结果示例:
输入 1,显示:
按任意键,又回到了上面的菜单(主菜单)。大家可以亲自运行一下这段代码,会有更加直观的动态效果。
上面的程序通过 while(1) 循环,不断执行用户操作,直到用户输入4退出系统。
system() 函数位于stdlib.h头文件,用来执行dos命令,system("cls") 用来清屏,与dos里面的cls命令功能相同。