本节涉及到的部分知识在《函数》一章中才会讲到,如果您是初学者,请阅读完该章再来回顾本节。
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命令功能相同。