user-0 提问: 程序完整，但无法运行并出现C1083: Cannot open include file: 'employee.h'的错误

回复:
user: user-1
content: 错误就是说你没有这个文件employee.h，检查是否放在了项目路径中，名字是否拼写错。

user: user-2
content: 找到employee.h文件的位置，把它放到cpp文件的文件夹中。

user: user-3
content: 帖那么多代码没用。。 找到你的employee.h所在位置： 1.用绝对路径 2.将头文件添加到工程中 3.放到include能搜索到的目录下

user: user-4
content: 错误就是说你没有这个文件employee.h，你找到他把他放在跟你当前cpp文件同一个文件夹里面

user: user-5
content: 把这个employee.h放到你工程的目录下，或者把它放到C盘，#include "C:\\employee.h"

user: user-0
content: int saveRecords(void){     FILE *fp;     char fname[30];     if(numEmpl==0){         printf("\n\n没有记录可存！\n\n");         getch();         return -1;     }     printf("\n\n输入要存入的文件名:\n\n");     scanf("%s",fname);     if((fp=fopen(fname,"wb"))==NULL){         printf("不能存入文件!\n");         getch();         return(-1);     }     printf("\n存入文件...\n");     fwrite(records,sizeof(EmpInfo)*numEmpl,1,fp);     fclose(fp);     printf("%d条记录已经存入文件，请继续操作。\n",numEmpl);     savedFlag=0;          /*更新是否已保存的标记*/     getch();     return(-1); }    /********************************************************************************    *文件储存操作函数 *结果；records将为从指定文件中读取出的记录 *返回：成功0，失败-1 ***********************************************************************************/ int loadRecords(void){     FILE *fp;     char fname[30];     char str[5];     if(numEmpl!=0&&savedFlag==0){         printf("请选择你是要覆盖现有记录(y),还是要将");         printf("读取的记录添加到现有记录之后(n)?\n");         scanf("%s",str);         if(str[0]=='n'||str[0]=='N'){             /*将读取的记录添加到现有记录之后*/             savedFlag=1;         }         else{                 if(savedFlag==1){                     /*覆盖现有记录*/                     scanf("%s",str);                     if(str[0]!='n'&&str[0]!='N')                     printf("读取文件将会更改原来的记录");                     printf("是否保存原来的记录？(Y/n)");                     saveRecords();                 }                 numEmpl=0;         }     }     printf("\n\n请输入要读取的文件名:");     scanf("%s",fname);     if((fp=fopen(fname,"rb"))==NULL){         printf("\n\n打不开文件！请重新选择\n\n");             return-1;     }     printf("\n取文件\n");     while(!feof(fp)){         /*现在的数组空间不足，需要重新申请空间*/         if(numEmpl>=arraySize){             records=realloc(records,(arraySize+INCR_SIZE)*sizeof(EmpInfo));             if(records==NULL){                 printf("memory failed!");                 exit(-1);             }             arraySize=arraySize+INCR_SIZE;         }         if(fread(&records[numEmpl],sizeof(numEmpl),1,fp)!=1)             break;         numEmpl++;     }     fclose(fp);     printf("现在共有%d条记录。",numEmpl);     return 0; }

user: user-0
content: void findInfo(void){     char str[5];     char target[20];     int type;     int count;     int i;     if(numEmpl==0)   {         printf("没有可供查询的记录!");         getch();         return;     }     while(1){         printf("请输入查找的方式：\n");         printf("1.按员工编号\n");         printf("2.按员工姓名\n");         printf("3.按员工所在部门\n");         printf("4.结束查询\n");         scanf("%s",str);         if(str[0]=='4')             return;         if(str[0]=='1')   {             printf("请输入欲查询的员工的编号：");             scanf("%s",target);             type=0;         }         else if(str[0]=='2'){         printf("请输入欲查找的员工的姓名：");             scanf("%s",target);             type=1;         }         else if(str[0]=='3'){             printf("请输入欲查找的员工所在部门：");             scanf("%s",target);             type=2;         }         i=findRecord(target,type,0);         if(i!=-1){             printf("编号\t姓名\t性别\t婚姻状况\t学位\t部门\t职位\t工资\t工龄\n");         }         count=0;         while(i!=-1){             printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",                 records[i].EmployeeNum,records[i].EmployName,                 records[i].EmployGender,records[i].EmployeeMarriage,                 records[i].EmployeeDegree,records[i].EmployeeDepart,                 records[i].EmployeePosition,records[i].EmployeePay,                 records[i].EmployeeWorkTime);             i=findRecord(target,type,i+1);             count++;         }         if(count==0)             printf("没有符合条件的员工!\n");         else             printf("一共找到了%d名员工的信息\n\n",count);     } } void deleteRecord(void){     char str[5];     char target[20];     int type;     int i,j;     if(numEmpl==0)  {         printf("没有可供删除的记录!");         getch();         return;     }     while(1){         printf("请输入如何找到欲删除的记录的方式：\n");         printf("1.按员工编号\n");         printf("2.按员工姓名\n");         printf("3.退出删除操作\n");         scanf("%s",str);         if(str[0]=='3')             return;         if(str[0]=='1'){             printf("请输入该员工编号：");             scanf("%s",target);             type=0;         }         else if(str[0]=='2'){             printf("请输入该员工的姓名：");             scanf("%s",target);             type=1;         }         i=findRecord(target,type,0);         if(i==-1)             printf("没有符合条件的员工!\n");         while(i!=-1){             printInfo(i);             printf("确定要删除这个员工信息吗？(y/n)");             scanf("%s",str);             if(str[0]=='y'||str[0]=='Y'){                 numEmpl--;                 for(j=i;j<numEmpl;j++){                     copyRecord(&records[j+1],&records[j]);                 }                 printf("成功删除记录!\n");             }             else                 break; /*取下一个符合条件的记录*/          i=findRecord(target,type,i++);          }     }     savedFlag=1; }  /*********************************************************************         修改指定员工的消息 ***********************************************************************/ void modifyRecord(void){     char str[5];     char target[10];     int type;     int i;     if(numEmpl==0){         printf("没有可供修改的记录!");         getch();         return;     }     while(1){         printf("请输入如何找到欲修改的记录的方式:\n");         printf("1.按员工编号\n");         printf("2.按员工姓名\n");         printf("退出修改操作\n");         scanf("%s",str);         if(str[0]=='3')             return;         if(str[0]=='1'){             printf("请输入该员工编号:");             scanf("%s",target);             type=0;         }         if(str[0]=='2'){             printf("请输入该员工姓名:");             scanf("%s",target);             type=1;         }         i=findRecord(target,type,0);         if(i==-1)             printf("没有符合条件的员工!\n");         while(i!=-1){             /*打印员工信息*/             printInfo(i);             printf("确定要修改这个员工的信息吗？(y/n)");             scanf("%s",str);             if(str[0]=='y'||str[0]=='Y'){                 addInfo(i);                 printf("修改记录成功!\n");             }             i=findRecord(target,type,i+1);         }     }     savedFlag=1; }  /*********************************************** *文件储存操作函数 *结果；数组records被保存至指定文件 *返回：成功0，失败-1 ************************************************/ int saveRecords(void){     FILE *fp;     char fname[30];     if(numEmpl==0){         printf("\n\n没有记录可存！\n\n");         getch();         return -1;     }     printf("\n\n输入要存入的文件名:\n\n");     scanf("%s",fname);     if((fp=fopen(fname,"wb"))==NULL){         printf("不能存入文件!\n");         getch();         return(-1);     }     printf("\n存入文件...\n");     fwrite(records,sizeof(EmpInfo)*numEmpl,1,fp);     fclose(fp);     printf("%d条记录已经存入文件，请继续操作。\n",numEmpl);     savedFlag=0;          /*更新是否已保存的标记*/     getch();     return(-1); }    /********************************************************************************    *文件储存操作函数 *结果；records将为从指定文件中读取出的记录 *返回：成功0，失败-1 ***********************************************************************************/ int loadRecords(void){     FILE *fp;     char fname[30];     char str[5];     if(numEmpl!=0&&savedFlag==0){         printf("请选择你是要覆盖现有记录(y),还是要将");         printf("读取的记录添加到现有记录之后(n)?\n");         scanf("%s",str);         if(str[0]=='n'||str[0]=='N'){             /*将读取的记录添加到现有记录之后*/             savedFlag=1;         }         else{                 if(savedFlag==1){                     /*覆盖现有记录*/                     scanf("%s",str);                     if(str[0]!='n'&&str[0]!='N')                     printf("读取文件将会更改原来的记录");                     printf("是否保存原来的记录？(Y/n)");                     saveRecords();                 }                 numEmpl=0;         }     }     printf("\n\n请输入要读取的文件名:");     scanf("%s",fname);     if((fp=fopen(fname,"rb"))==NULL){         printf("\n\n打不开文件！请重新选择\n\n");             return-1;     }     printf("\n取文件\n");     while(!feof(fp)){         /*现在的数组空间不足，需要重新申请空间*/         if(numEmpl>=arraySize){             records=realloc(records,(arraySize+INCR_SIZE)*sizeof(EmpInfo));             if(records==NULL){                 printf("memory failed!");                 exit(-1);             }             arraySize=arraySize+INCR_SIZE;         }         if(fread(&records[numEmpl],sizeof(numEmpl),1,fp)!=1)             break;         numEmpl++;     }     fclose(fp);     printf("现在共有%d条记录。",numEmpl);     return 0; }  /*********************************************** *文件储存操作函数 *结果；数组records被保存至指定文件 *返回：成功0，失败-1 ************************************************/

user: user-0
content: void handle_menu(void) {     for(; ;) {         switch(menu_select()) {         case 0:             addRecord();             getch();             system("cls");             break;         case 1:             modifyRecord();             getch();             system("cls");             break;         case 2:             display();             getch();             system("cls");             break;         case 3:             findInfo();             system("cls");             break;         case 4:             deleteRecord();             system("cls");             break;         case 5:             sortInfo();             system("cls");             break;         case 6:             saveRecords();             system("cls");             break;         case 7:             loadRecords();             getch();             system("cls");             break;         case 8:             newRecords();             getch();             system("cls");             break;         case 9:             quit();         }     } } /****************************** *    菜单选择函数menu_selected ******************************/ int menu_select(void) {     char s[2];     int choice=0;     printf("\n");     printf("\t******菜单选项******\n");     printf("\n");     printf("\t0.增加员工信息\n");     printf("\t1.修改员工信息\n");                                            printf("\t2.显示员工信息\n");     printf("\t3.查询员工信息\n");     printf("\t4.删除员工信息\n");     printf("\t5.对员工信息进行排序\n");     printf("\t6.保存员工信息至记录文件\n");     printf("\t7.从记录文件读取员工信息\n");     printf("\t8.新建员工信息文件\n");     printf("\t9.退出管理系统\n");     printf("\t********************");     printf("\n\t左边数字对应功能选择，请选择0--9: ");     for(; ;) {         scanf("%S",s);         choice=atoi(s);            /*处理键入的非数字键，过滤出数字0*/         if(choice==0&&(strcmp(s,"0")!=0))             choice=11;         if(choice<0||choice>9)             printf("\n\t输入错误，重选0--9: ");         else             break;     }     return choice;  }     /******************************************************************** *    新建员工信息记录 *    结果:若原来信息没有保存，则保存原来的信息，然后重新输入信息记录 ********************************************************************/ void newRecords(void) {     char str[5];     if(numEmpl!=0)    {         if(savedFlag==1) {             printf("现在已经有记录，选择处理已有记录的方法。\n");             printf("是否保存原来的记录？（y/n)");             scanf("%s",str);             if(str[0]!='n' && str[0]!='N')                 saveRecords();     } }     numEmpl=0;     addRecord(); } /******************************************************************** *    结束运行，退出 *    参数 void ********************************************************************/ void quit(void) {     char str[5];     if(savedFlag==1)    {         printf("是否保存原来的记录?(y/n)");             scanf("%s",str);         if(str[0]!='n' || str[0]!='N')             saveRecords();     }     free(records);     exit(0); }/****************************** *    菜单选择函数menu_selected ******************************/ int menu_select(void) {     char s[2];     int choice=0;     printf("\n");     printf("\t******菜单选项******\n");     printf("\n");     printf("\t0.增加员工信息\n");     printf("\t1.修改员工信息\n");                                            printf("\t2.显示员工信息\n");     printf("\t3.查询员工信息\n");     printf("\t4.删除员工信息\n");     printf("\t5.对员工信息进行排序\n");     printf("\t6.保存员工信息至记录文件\n");     printf("\t7.从记录文件读取员工信息\n");     printf("\t8.新建员工信息文件\n");     printf("\t9.退出管理系统\n");     printf("\t********************");     printf("\n\t左边数字对应功能选择，请选择0--9: ");     for(; ;) {         scanf("%S",s);         choice=atoi(s);            /*处理键入的非数字键，过滤出数字0*/         if(choice==0&&(strcmp(s,"0")!=0))             choice=11;         if(choice<0||choice>9)             printf("\n\t输入错误，重选0--9: ");         else             break;     }     return choice;  }     /******************************************************************** *    新建员工信息记录 *    结果:若原来信息没有保存，则保存原来的信息，然后重新输入信息记录 ********************************************************************/ void newRecords(void) {     char str[5];     if(numEmpl!=0)    {         if(savedFlag==1) {             printf("现在已经有记录，选择处理已有记录的方法。\n");             printf("是否保存原来的记录？（y/n)");             scanf("%s",str);             if(str[0]!='n' && str[0]!='N')                 saveRecords();     } }     numEmpl=0;     addRecord(); } /******************************************************************** *    结束运行，退出 *    参数 void ********************************************************************/ void quit(void) {     char str[5];     if(savedFlag==1)    {         printf("是否保存原来的记录?(y/n)");             scanf("%s",str);         if(str[0]!='n' || str[0]!='N')             saveRecords();     }     free(records);     exit(0); } #include"employee.h" /******************************* *     显示所有的员工信息 *******************************/ void display(void) {     int i;     char str[3];     if(numEmpl==0)     {         printf("没有可供显示的记录!");         return;     }     printf("\n1.显示简明员工信息\n2.显示详细员工信息\n您的选择: ");     scanf("s%",str);     if(str[0]=='2') {         for(i=0;i<numEmpl;i++) {             /*打印员工信息*/             printInfo(i);             /*打印满20个记录后停下来*/             if(i%20==0 && i!=0) {                 printf("输入任意字符后继续...");                 getch();                 printf("\n\n");             }         }      }     if(str[0]=='1') {         for(i=0;i<numEmpl;i++) {             printf("编号\t姓名\t部门\t职位\n");             printf("%s\t%s\t%s\t%s\n",records[i].EmployeeNum,                 records[i].EmployName,                 records[i].EmployeeDepart,                 records[i].EmployeePosition);             if(i%20==0&&i!=0)  {                 printf("输入任意字符后继续...");                 getch();                 printf("\n\n");             }         }     } } /******************************************************************** *    在当前表的末尾增加新的信息 *    结果:records中将记录新的信 *    息，如果数组大小不够，会重 *    新申请数组空间 ********************************************************************/ void addRecord(void){     char str[10];     if(numEmpl==0)         printf("原来没有记录，现在建立记录\n");     else         printf("下面在当前表的末尾增加新的信息\n");     while(1){         printf("你将要添加一组员工信息，确定吗?(y/n)");         scanf("%s",str);         if(str[0]=='n' || str[0]=='N')             break;         if(numEmpl>=arraySize){             records=realloc(records,(arraySize+INCR_SIZE)*             sizeof(EmpInfo));             if(records==NULL){                 printf("memory failed!");                 exit(-1);             }             arraySize=arraySize+INCR_SIZE;         }         addInfo(numEmpl);         numEmpl++;     }     printf("现在一共有%d条信息\n",numEmpl);     savedFlag=1; } void addInfo(int num){     char str1[10];     char str2[10];     char str3[10];     char str4[10];     printf("请输入员工编号：");     scanf("%s",records[num].EmployeeNum);     printf("请输入员工姓名：");     scanf("%s",records[num].EmployName);     printf("请输入员工性别（0为女，1为男）：");     scanf("%s",str1);     if(str1[0]=='0')         strcpy(records[num].EmployGender,"女");     else         strcpy(records[num].EmployGender,"男");     printf("请输入员工婚姻状况（0为未婚,1为已婚)：");     scanf("%s",str2);     if(str2[0]=='0')         strcpy(records[num].EmployeeMarriage,"未婚");     else         strcpy(records[num].EmployeeMarriage,"已婚");     printf("请输入员工学历：（0.大学本科生,1.硕士研究生,2.博士研究生）：");     scanf("%s",str3);     if(str3[0]=='0')         strcpy(records[num].EmployeeDegree,"大学本科生");     else if(str3[0]=='1')         strcpy(records[num].EmployeeDegree,"硕士研究生");     else if(str3[0]=='2')         strcpy(records[num].EmployeeDegree,"博士研究生");     printf("请输入员工所在部门：");     scanf("%s",records[num].EmployeeDepart);     printf("请输入员工职务：(0.职员，1.主任，2.经理，3.董事长)");     scanf("%s",str4);     if(str4[0]=='0')         strcpy(records[num].EmployeePosition,"职员");     if(str4[0]=='1')         strcpy(records[num].EmployeePosition,"主任");     if(str4[0]=='2')         strcpy(records[num].EmployeePosition,"经理");     if(str4[0]=='3')         strcpy(records[num].EmployeePosition,"董事长");     printf("请输入员工工资：");     scanf("%s",records[num].EmployeePay);     printf("请输入员工工龄：(以年为单位计算):");     scanf("%s",records[num].EmployeeWorkTime); } void printInfo(int num){     printf("编号\t姓名\t性别\t婚姻状况\t学位\t部门\t职位\t工资\t工龄\n");     printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",     records[num].EmployeeNum,             records[num].EmployName,records[num].EmployGender,             records[num].EmployeeMarriage,records[num].EmployeeDegree,             records[num].EmployeeDepart,records[num].EmployeePosition,             records[num].EmployeePay,records[num].EmployeeWorkTime); } #include "employee.h" int findRecord(char* target,int targetType,int from){     int i;     for(i=from;i<numEmpl;i++){          if((targetType==0 && strcmp(target,records[i].EmployeeNum)==0)              ||(targetType==1 && strcmp(target,records[i].EmployName)              ==0)              ||(targetType==2&&strcmp(target,records[i].EmployeeDepart)              ==0))              return i;     }     return -1; }

user: user-6
content: 没有找到这个employee.h这个文件，检查是否放在了项目路径中，名字是否拼写错，再不行试下使用绝对路径