优化下面这段代码:int edit() { // 初始化文件指针和计数器等变量 FILE *fp = NULL; int count = 0; char num[100]; int flag4 = 0, flag5 = 0, flag6 = 0,flag7=0,flag8=0; char F_name[20]; // 进入程序循环 while (1) { // 显示菜单 menu12(); // 获取用户输入的选项 printf("\t请选择你要进行的文件操作:"); scanf("%s", num); getchar(); // 判断用户输入是否合法 while (strlen(num) > 1 || num[0] < 49 || num[0] > 52) { printf("\t输入错误!请重新输入:"); scanf("%s", num); getchar(); } // 根据用户输入的选项进行相应操作 switch (num[0]) { case '1': flag4 = 1; break; case '2': flag5 = 1; break; case '3': flag6 = 1; break; case '4': flag7 = 1; break; case '5': flag8 = 1; break; } // 根据不同选项调用不同的函数 if (flag4 == 1) { flag4 = 0; insert_file(fp, F_name); } else if (flag5 == 1) { flag5 = 0; delete_file(fp, F_name); } else if (flag6 == 1) { flag6 = 0; search_file(fp, F_name); } else if (flag7 == 1) { flag7 = 0; replace_file(fp, F_name); } else if (flag8 == 1) { flag8 = 0; write_file(fp, F_name); } } return 0; }
时间: 2024-02-14 15:33:33 浏览: 98
int edit() {
FILE *fp = NULL;
int count = 0;
char num[100];
char F_name[20];
int flag[5] = {0}; // 使用数组来代替多个 flag 变量
while (1) {
menu12();
printf("\t请选择你要进行的文件操作:");
scanf("%s", num);
getchar();
while (strlen(num) > 1 || num[0] < '1' || num[0] > '5') { // 使用字符代替数字
printf("\t输入错误!请重新输入:");
scanf("%s", num);
getchar();
}
switch (num[0]) {
case '1':
flag[0] = 1;
break;
case '2':
flag[1] = 1;
break;
case '3':
flag[2] = 1;
break;
case '4':
flag[3] = 1;
break;
case '5':
flag[4] = 1;
break;
}
if (flag[0] == 1) {
flag[0] = 0;
insert_file(fp, F_name);
}
else if (flag[1] == 1) {
flag[1] = 0;
delete_file(fp, F_name);
}
else if (flag[2] == 1) {
flag[2] = 0;
search_file(fp, F_name);
}
else if (flag[3] == 1) {
flag[3] = 0;
replace_file(fp, F_name);
}
else if (flag[4] == 1) {
flag[4] = 0;
write_file(fp, F_name);
}
}
return 0;
}
优化思路:
1. 将多个 flag 变量使用数组代替,更加简洁。
2. 使用字符代替数字,更加可读。
3. 将代码格式化,使其更加易读。
阅读全文