好心人帮忙看一下,用tc做个小档案,碰壁了

来源:百度知道 编辑:UC知道 时间:2024/06/16 21:45:44
1.input the data
2.display the data
3.display the short-data
0.exit the system
这是主界面,1是输入职工数据,2是显示完整数据,3是显示简明数据,0是推出
1对应函数readin(),可是我输入万数据后,就回到源代码了而不是系统主界面,要看结果还要从新按ctrl+f,选2观看,不知道那错了
readin()
{ FILE *fp;
char c;
char ch[10];
int i=0;

fp=fopen("workers","w+");

aaa: printf("number:");
scanf("%s",works[i].num);
printf("name:");
getchar();
gets(ch);
strcpy(works[i].name,ch);
printf("sex:");
scanf("%s",works[i].sex);
printf("age:");
scanf("%d",&works[i].age);
printf("ok this input is over!!\n");
fwrite(&works[i],sizeof(struct worker),1,fp);

printf("continue? y/n\n"); getchar();
c=getchar();

if(c=='y'||c=='Y'){i++;goto aaa

readin()的函数没有错,错误应该在主界面的那个函数里面

你想达到“输入完数据后不退出”的功能,应该在主界面的那个函数搞个循环

补充:
你给的主程序,我没有看出什么问题。
也许是你"获取输入字符"的部分有问题吧。

不过,主程序还是可以修改一下的:
main()/*这是我的主函数*/
{
while(1)
{
jiemian();/*这是主界面函数,就是开个窗口,用点颜色而已*/
switch(menu_select())/*menu_select()把输入的字符转为0到4这五个数*/
{
case 1:
readin();
break;

case 2:
display(works);
break;/*显示输入的数据works结构数组,回到界面*/

case 3:
wksht();
break;/*显示简明数据*/

case 4:
printf("restore all\n");
break;

case 0:
default:
printf("goodbye\n");
exit(0);
}
}
}