黑马程序员技术交流社区
标题:
通讯录为什么说我switch函数 永远不会执行 求大神解析
[打印本页]
作者:
LEON27
时间:
2015-6-28 09:57
标题:
通讯录为什么说我switch函数 永远不会执行 求大神解析
//
// main.c
// telNum
//
// Created by leon on 15/6/27.
// Copyright (c) 2015年 Leon. All rights reserved.
//
#include <stdio.h>
#include <string.h>
/*************** 宏定义 ***************/
#define N 100 //定义宏定义
#define NAMELEN 22
#define NUMLEN 12
/*************** 定义部分 ***************/
//定义联系人的结构体
typedef struct{
//联系人
char name[NAMELEN];
//电话号码
char telNum[NUMLEN];
}Person;
//存储所有的联系人,联系人的数组
Person contacts[100];
//定义联系人的个数
int totalContactCount=0;
//接受用户输入烦人编号
int fno;
//定义数据文件保存的位置
char *filePath="telbook.data";
/*************** 函数的声明 ***************/
int validateInput(int num,int min, int max);
void init();
void doAdd();
void doDelete();
void doUpdate();
void doList();
void doSearchByName();
int main (int argc,const char * argv[]) {
init();
printf("通讯录初始化完成:\n");
while(1){
printf("\n");
//软件的界面显示出来
printf("**************************\n");
printf("******欢迎使用通讯录******\n");
printf("******1、添加联系人 ******\n");
printf("******2、删除联系人 ******\n");
printf("******3、修改联系人 ******\n");
printf("******4、查看所有联系人 **\n");
printf("******5、搜索联系人 ******\n");
printf("******6、退出系统 ********\n");
printf("**************************\n\n");
//提示用户选择一个序号
printf("请选择1-6之间的功能编号:\n");
scanf("%d",&fno);
//判断编号是否合法
validateInput(fno,1,6);
switch(fno) {
case1:
//执行添加
doAdd();
break;
case2:
//执行删除
doDelete();
break;
case3:
//执行修改
doUpdate();
break;
case4:
//执行查看
doList();
break;
case5:
//执行搜索
doSearchByName();
break;
case6:
//执行退出
printf("系统正在退出。。。");
printf("系统已退出");
return 0;
break;
default:break;
}
}
}
int validateInput(int num,int min, int max){
if(num<min || num>max){
printf("非法的输入!");
return 1;
}
return 0;
}
//添加联系人
void doAdd(){
printf("您选择的是添加联系人,请按提示操作:\n");
}
//删除联系人
void doDelete(){
printf("您选择的是删除联系人,请按提示操作:\n");
}
//修改联系人
void doUpdate(){
printf("您选择的是联系修改人,请按提示操作:\n");
}
//显示所有联系人
void doList(){
printf("您选择的是查看联系人,联系人如下:\n");
}
//搜索联系人
void doSearchByName(){
printf("您选择的是搜索联系人,请按提示操作:\n");
}
//通讯录初始化
/*
1、尝试性读取数据文件
2、如果读取成功,说明文件存在
如果存在,要读取联系人数据,保存到联系人数组 contacts
3、如果读取失败,说明我们是第一次使用通讯录
如果是第一次使用
1)创建联系人数据文件
2)把当前联系人的个数写入到文件中 totalContactCount
*/
void init(){
//定义文件指针,并且打开文件
FILE *fp=fopen(filePath,"r");
if(fp!=NULL){
//第一步:读取联系人的个数
fread(&totalContactCount,sizeof(totalContactCount),1,fp);
//第二部:读取每一个联系人
for(int i=0; i<totalContactCount;i++){
fread(&contacts[i],sizeof(contacts),1,fp);
}
} else{
//创建文件
fp=fopen(filePath,"wb");
//写入联系人
fwrite(&totalContactCount,sizeof(totalContactCount),1,fp);
printf("通讯录文件创建成功~");
}
//关闭文件指针
fclose(fp);
}
复制代码
作者:
丁铭检
时间:
2015-6-29 11:21
本帖最后由 丁铭检 于 2015-6-29 11:27 编辑
case和数字之间用空格隔开一下。。。或者错误很难发现。。。希望以后习惯性使用空格。。
QQ截图20150629112041.jpg
(71.87 KB, 下载次数: 3)
下载附件
2015-6-29 11:20 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2