C++基本的文件操作,打开,关闭,添加 ,查找等。以下是操作的小例子:
#include "stdio.h"
#include "stdlib.h"
# include "string.h"
class CA
{
char *pc;
char c[5];
int h;
public:
struct stu
{
int num;
char name[20];
int tel;
char add[50];
}s,*p;
FILE *fp;
CA()
{
h=1;
p=(stu*)malloc(sizeof(stu));
if((fp=fopen("e:\zhy.txt","at+"))==NULL) //打开文件
{
//输出错误提示
printf("Cannot open file strike any key exit!");
getchar();
exit(1);
}
}
~CA()
{
free(p);
fclose(fp);
}
void fprint() //输入员工信息
{
rewind(fp);
printf("输入员工信息:\n");
printf("num:");
scanf("%d",&p->num);
printf("name:");
scanf("%s",p->name);
printf("tel:");
scanf("%d",&p->tel);
printf("addr:");
scanf("%s",p->add);
fprintf(fp,"%d %s %d %s\n",p->num,p->name,p->tel,p->add);
fprintf(fp,"\n");
//fflush(fp); //清除缓存
printf("继续按 y 其他键返回 ");
scanf(" %s",&c);
if(strcmp(c,"y")==0)
{
fprint();
}
}
void fscan() //显示文件内容
{
rewind(fp);
printf("\n编号\t姓名\t电话\t\t地址\n");
while(!(feof(fp)))
{
scan(p);
disp(p);
}
}
void find(int num)
{
rewind(fp);
printf("\n编号\t姓名\t电话\t\t地址\n");
while(9)
{
scan(p);
if (num==p->num)
{
disp(p);
h=0;
}
if (feof(fp))
{
if (h)
{
printf("\n没有找到符合条件的数据~~请核对~\n\n");
h=0;
}
break;
}
}
}
void find(char *name)
{
rewind(fp);
printf("\n编号\t姓名\t电话\t\t地址\n");
while(9)
{
scan(p);
if (strcmp(name,p->name)==0)
{
disp(p);
h=0;
}
if (feof(fp))
{
if (h)
{
printf("\n没有找到符合条件的数据~~请核对~\n\n");
h=1;
}
break;
}
}
}
void scan(stu *p)
{
fscanf(fp,"%d%s%d%s\n",&p->num,p->name,&p->tel,p->add);
}
void disp(stu *p)
{
if (p->num>0) //保证数据文件不能为空
{
printf("%d\t%s\t%d\t\t%s\n",p->num,p->name,p->tel,p->add);
}
else
printf("\n 数据文件为空,请先输入员工信息!!\n");
}
};
void main()
{
int n=9;
int m=0;
char s[20]="null";
CA a;
printf("\n 员工信息查询 ");
while(n)
{
printf("\n\n******************************************\n");
printf(" 输入 1:录入员工信息\n");
printf(" 输入 2:按编号查找员工\n");
printf(" 输入 3:按姓名查找员工\n");
printf(" 输入 4:显示员工信息\n");
printf(" 输入 0:退出\n");
printf("******************************************\n");
scanf("%d",&n);
switch(n)
{
case 1:
a.fprint();//输入
break;
case 2:
printf("输入员工编号:");
scanf("%d",&m);
a.find(m);
break;
case 3:
printf("输入员工姓名:");
scanf("%s",&s);
a.find(s);
break;
case 4:
a.fscan();//显示
break;
}
}
}