| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 818 人关注过本帖
标题:为什么菜单的选择传不到菜单执行函数里你?
只看楼主 加入收藏
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
收藏
 问题点数:0 回复次数:2 
为什么菜单的选择传不到菜单执行函数里你?

#include "stdio.h" #include "stdlib.h" #include "string.h" struct time { int year; int month; int day; }; struct note { char no[20]; char title[40]; char nr[200]; struct time rq; char file[20]; }kind[6]; char a=0,b=0,c=0,d=0,e=0,f=0; char m,k; int menu_main(void); //菜单函数 void deal_menu(void); //菜单处理函数 void file_read(void); //读文件函数 void add_file(void); //增加函数 void del_file(void); //删除记录函数 void edit_file(void); //编辑函数 //void search() //查寻,列出记录函数 //void count_order() //统计,排列函数

//菜单函数 int menu_main() { int nc; printf("提示:如果原来没有记录,请先增加记录\n\n"); printf("1.读取记事本文件\n"); printf("2.增加分类记事本的记录\n"); printf("3.删除分类记事本的记录\n"); printf("4.编辑分类记事本的记录\n"); printf("5.查询分类记事本的标题包含信息,并将所找到记录列出!\n"); printf("6.统计记录个分类总数,将序排列\n"); printf("7.请选择1-6:\n"); nc=getchar(); return nc ; } //菜单处理函数 void deal_menu(void) { for( ; ; ){ switch(menu_main()) { case 1: file_read(); //读文件函数 break; case 2: add_file(); //增加函数

break; case 3: del_file(); //删除函数 break; case 4: edit_file(); //编辑函数

break; // case 5: // search(); //查寻,列出记录函数 // break; // case 6: // count(); //统计函数 // order(); //排序函数 // break; } } }

//读文件函数11 void file_read(void) { char ch; char filename[80]; FILE *fp;

printf("请输入要打开的文件名:(如果不行,请输入文件的绝对路径)\n"); scanf("%s",filename);

if ((fp=fopen(filename,"r"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); }

while((ch=fgetc(fp))!=EOF) { putchar(ch); } fclose(fp); printf("\n"); ch=getchar(); }

//增加函数11 void add_file(void) { char filename[20],n[20]; int i; FILE *fp; printf("\n请输入第几种类记录的信息:\n"); scanf("%d",&i); printf("请为第%d个记录增加1\n",i); switch(i) { case 1: a++ ;break; case 2: b++ ;break; case 3: c++ ;break; case 4: d++ ;break; case 5: e++ ;break; case 6: f++ ;break; } //fflush(stdin);空stdin即标准输入流的缓冲区,防止它影响后面的数据输入 printf("输入序号:\n"); scanf("%s",kind[i].no); fflush(stdin);

printf("输入标题:\n"); gets(kind[i].title); fflush(stdin);

printf("输入内容:\n"); gets(kind[i].nr); fflush(stdin);

printf("输入日期\n"); scanf("%d%d%d",&(kind[i].rq.year),&(kind[i].rq.month), &(kind[i].rq.day)); fflush(stdin);

printf("输入增加的文件名字\n"); gets(filename); if ((fp=fopen(filename,"wb"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); } printf("\n恭喜您!!成功添加记录...\n"); fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } //删除函数11 void del_file(void) { char n ,filename[20]; char i; FILE *fp; printf("输入删除的文件名字\n"); gets(filename); if ((fp=fopen(filename,"wb"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); } printf("要删除的第几类文件:\n"); scanf("%d",&n); printf("您已经成功删除!\n"); strcpy(kind[i].no," "); fflush(stdin);

strcpy(kind[i].title," "); fflush(stdin);

strcpy(kind[i].nr," "); fflush(stdin); strcpy(kind[i].rq.year," "); strcpy(kind[i].rq.month," "); strcpy(kind[i].rq.day," "); fflush(stdin); strcpy(kind[i].file," "); fflush(stdin); fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } //编辑函数11 void edit_file(void) { char filename[20],c,i,j; char num,head,content,nian,yue,ri,wenjian; FILE *fp; printf("请输入想编辑的记事本文件名字:(如果不行,请输入文件的绝对路径)\n"); gets(filename); if((fp=fopen(filename,"r+"))==NULL) { printf("不能打开所输入的文件\n"); exit(0); } printf("修改什么类型的序号\n"); scanf("%d",&i); printf("输入序号:\n"); scanf("%s",num); strcpy(kind[i].no,num); fflush(stdin); printf("输入标题:\n"); gets(head); strcpy(kind[i].title,head); fflush(stdin);

printf("输入内容:\n"); gets(content); strcpy(kind[i].nr,content); fflush(stdin); printf("输入日期\n"); scanf("%d%d%d",nian,yue,ri); strcpy(kind[i].rq.year,nian); strcpy(kind[i].rq.month,yue); strcpy(kind[i].rq.day,ri); fflush(stdin); printf("输入文件名字:\n"); scanf("%s",wenjian); strcpy(kind[i].file[j],wenjian); fflush(stdin); fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } main() { menu_main(); //菜单函数 deal_menu(); //菜单处理函数 } 我在C-FREE里运行了,程序执行到菜单选择后,就干不下去了~~~~~~~

搜索更多相关主题的帖子: void 菜单 char int 
2005-01-01 14:30
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

void deal_menu(void) { for( ; ; ){ switch(menu_main()) { case 1: file_read(); //读文件函数 break; case 2: add_file();

自己看看menu_main()返回的是多少?与你想象一样吗?printf出来看看,基础问题,以前学过C现在重学??


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-01-01 15:31
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
收藏
得分:0 
第一次学啊, 我不是高手,也不是老菜鸟啊 不过还是要谢谢knocker 菜单函数里的nc=getchar(); 我改为 scanf("%d",nc); 竟然能运行了,哈哈。 不过问题有来了, 就是必须选择2次菜单,才进行菜单目录下的操作。 正常情况是选1次就进行下一步了,为什么呢??

2005-01-01 17:10
快速回复:为什么菜单的选择传不到菜单执行函数里你?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023507 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved