| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 350 人关注过本帖, 1 人收藏
标题:【求助】关于文件的一个问题
只看楼主 加入收藏
clovey10000
Rank: 2
等 级:论坛游民
帖 子:30
专家分:39
注 册:2013-4-24
结帖率:75%
收藏(1)
已结贴  问题点数:20 回复次数:2 
【求助】关于文件的一个问题
程序代码:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
struct student
{
    char num[10];
    char name[20];
    char sex;
    char phone[12];
}stu[100];
int sum;
FILE *fp;                         //定义文本指针
void Student();                   //主菜单函数的声明 
void Insert();                    //添加联系人函数的声明
void Show();                      //显示通讯录
void Save();                      //定义Save函数,向文件输出学生的数据
void Fshow();                     //从文件中读取数据        
void main()
{
    Student();
}
void Student()
{   system("cls");
    int a;
    system("color f1");
    printf("\n\n\n");
    printf("\t\t\t 软件1214班学生通讯录管理系统\n");
    printf ("\n================================================================================\n");
    printf("\t\t\t\t1---添加联系人\n");
    printf("\t\t\t\t2---显示通讯录\n");
    printf ("\n================================================================================\n");
    scanf("%d",&a);
    switch(a)
    {
        case 1:Insert();Student();break;
        case 2:Show();  break;
    }
}

void Insert()
{
  int i,j;
  for(i=0,sum=0;i<100;i++)
    {system("cls");
     sum=sum+1;
     if((fp=fopen("1214.txt","a+"))==NULL)
       {printf("can not open file\n");
        exit(0);
       }
     fputs("sum",fp);
     fclose(fp);
     printf("\n\n\t输入学号\n\t");
     scanf("%s",stu[i].num);
     printf("\n\n\t输入姓名\n\t");
     scanf("%s",stu[i].name);
     printf("\n\n\t输入性别\n\t");
     scanf("%s",&stu[i].sex);
     printf("\n\n\t输入号码\n\t");
     scanf("%s",stu[i].phone);
     printf("\n是否继续添加:1是0否");
     scanf("%d",&j);
     if(j==1)
       printf("\n");
     else
       break;
    }
    Save();
     
}

void Save()
{
    int i;
    if((fp=fopen("1214.txt","a+"))==NULL)
       {printf("can not open file\n");
        exit(0);
       }
    for(i=0;i<sum;i++)
      if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
        printf("file write error\n");
    fclose(fp);  
}

void Fshow()
{
    int i;
    if((fp=fopen("1214.txt","r+"))==NULL)
      {printf("can not open file\n");
       exit(0);
      }
    for(i=0;i<sum;i++)
      {fread(&stu[i],sizeof(struct student),1,fp);
       printf("\n学号:%s\n姓名:%s\n性别:%c\n号码:%s",stu[i].num,stu[i].name,stu[i].sex,stu[i].phone);
       printf("\n================================================================================");
      }
      fclose(fp);
}

void Show()
{
    system("cls");
    int i,j;   
    if(sum!=0)
      Fshow();
    if(sum==0)
      printf("\n\t\t\t\t通讯录目前没有记录\n");
    printf("按任意键返回主界面"); 
    scanf("%s",&j);
    system("cls");
    Student();            
}
各位,我想实现的功能:关了程序,下次打开能直接显示之间录入的数据。我的思路是想把sum也存入文件,以此实现这个功能。但是这里我不知道应该怎样写。
2013-06-14 12:24
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
每次运行用append来追加记录,运行之前用fread读入,显示

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-06-15 07:05
编程20123165
Rank: 2
等 级:论坛游民
帖 子:11
专家分:26
注 册:2013-5-18
收藏
得分:10 
学习了
2013-06-16 09:24
快速回复:【求助】关于文件的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031175 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved