百度首页 | 百度空间
 
查看文章
 
C++文件操作
2008年04月24日 星期四 22:35

     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;
   }
}

}


类别:c++ | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2008年05月07日 星期三 15:15
我想知道printft函数和缓存之间的关系,能不能告诉我,谢谢!
 
2
2008年05月07日 星期三 18:11
好像没什么关系,那属于地层的运作了,我也清楚,不好意思了。
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu