/*改扩展名,还有 minput函数的fp和i 变量申明位置不合适,移到函数开头就行了 */
#include
#include
#define SIZE 100
int num=0;
struct member_type
{
char name[10];
int id;
int age;
char addr[15];
}mem[SIZE];
void minput()
{
FILE *fp; /*早期的C编译器必须在函数开头声明变量,把fp和i移到开头*/
int i;
char ch;
while(1)
{
printf("请输入职员相关信息:\n");
printf("职员ID:");
scanf("%d",&mem[num].id);
printf("\n");
printf("职员姓名:");
scanf("%s",&mem[num].name);
printf("\n");
printf("职员年龄:");
scanf("%d",&mem[num].age);
printf("\n");
printf("职员地址:");
scanf("%s",&mem[num].addr);
printf("\n");
num++;
getchar();
printf("是否继续录入职员信息?(Y/N)\n");
ch = getchar();
if (ch =='n' || ch =='N')
{
break;
}
}
if ((fp=fopen("member.dat","wb"))==NULL)
{
printf("出错了,无法打开文件!\n");
return ;
}
if (fwrite(&num,sizeof(int),1,fp)!=1)
{
printf("出错了,无法写入文件!\n");
}
for (i=0;i
{
if (fwrite(&mem[i],sizeof(struct member_type),1,fp)!=1)
{
printf("出错了,无法写入文件!\n");
}
}
fclose(fp);
}
void moutput()
{
FILE *fp;
int i;
if ((fp=fopen("member.dat","rb"))==NULL)
{
printf("出错了,无法打开文件!\n");
return ;
}
if (fread(&num,sizeof(int),1,fp)!=1)
{
num=-1;
}
else
{
for(i=0;i
{
fread(&mem[i],sizeof(struct member_type),1,fp);
printf("%s 的职员ID为 %d 年龄为 %d 地址为 %s\n",mem[i].name,mem[i].id,mem[i].age,mem[i].addr);
}
}
fclose(fp);
}
int main()
{
int xuhao;
void minput();
void moutput();
while(1)
{
printf("=========企业职员信息管理程序===========\n");
printf("1,输入职员信息\n");
printf("2,查看已录入职员信息\n");
printf("3,退出本程序\n");
printf("请输入要执行的操作前面的序号:");
scanf("%d",&xuhao);
switch(xuhao)
{
case 1:minput();
break;
case 2:moutput();
break;
case 3:return 0;
}
}
return 0;
}
这个程序本来就是C的,直接改名吧
C中没有string 这一说法,只能用字符数组!!!
修改文件后缀名