| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1192 人关注过本帖
标题:求助 向文件输入信息后问什么文件还是为空啊
只看楼主 加入收藏
几个一
Rank: 2
等 级:论坛游民
帖 子:23
专家分:39
注 册:2020-10-17
结帖率:100%
收藏
 问题点数:0 回复次数:0 
求助 向文件输入信息后问什么文件还是为空啊
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct tongxunguanli
{
    char clas[10];
    char name[20];
    char num[20];
    char address[100];
    char tele[12];
    char mail[30];
    char whchat[100];
 }tongxun[100];
 int count=0;
 double xuehao=0;
void build(int);
void show(int);
void search(int);
void update(int);
void insert(int);
void delet(int);
void paixu(int);
void cunchu(int);
int main()
{
    int i;
    build(count);
    do
    {
        printf("\n");
        printf("1 显示(show)\n");
        printf("2 查询(search)\n");
        printf("3 修改(update)\n");
        printf("4 添加(insert)\n");
        printf("5 删除(delete)\n");
        printf("6 排序(paixu)\n");
        printf("7 退出(exit)\n");
        scanf("%d",&i);
        switch(i)
        {
            case 1:show(count);break;
            case 2:search(count);break;
            case 3:update(count);break;
            case 4:insert(count);break;
            case 5:delet(count);break;
            case 6:paixu(count);break;
            case 7:printf("您即将退出系统,谢谢使用");break;
        default:printf("错误选择!请重选\n");break;
         }
        }while(i!=7);
        return 0;
    }
void build(int)
{int i=0,t=0;
while(1)
{
count++;
printf("请按顺序依次输入学生班级、姓名、学号、家庭地址、电话号码、邮件名、微信名\n");
scanf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);
i++;
printf("\n");
printf("是否继续输入 用t是否等于i来判断 t==i则继续重复执行该程序\n");
scanf("%d",&t);
if(t!=i)
break;
}
cunchu(count);   
}
void show(int count)
{
    int i=0;
    printf("\n");
    printf("展示学生姓名、学号和电话号码\n");count++;
    for(i=0;i<count;i++)
    {printf("%s\n",tongxun[i].name);
    printf("%s\n",tongxun[i].num);
     printf("%s\n",tongxun[i].tele);
     }
}
void search(int count)
{
    int i,flag=1,t=0;
    char xuehao[20];
    char xingming[20]={"\0"};
    printf("1 姓名2学号\n");
    printf("输入1或2\n");
    scanf("%d",&t);
    if(t==1)
    {printf("输入姓名\n");
    scanf("%s",xingming);
    for(i=0;i<count&&flag;i++)
    if(strcmp(tongxun[i].name,xingming)==0)
    {
    printf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);flag=0;
    }
    else if(t==2)
    {
        printf("请输入学号\n");
        scanf("%s",&xuehao);
        for(i=0;i<count&&flag;i++)
            if(strcmp(tongxun[i].num,xuehao)==0)
            {printf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);
            
            flag=0;
            }
            else
            printf("没有找到\n");
    }   
    }
}
void update(int count)
{
    int i,flag=1;
    char xuehao[20];
    printf("请输入要修改数据的学号\n");
    scanf("%s",xuehao);
    for(i=0;i<count&&flag;i++)
    if(strcmp(tongxun[i].num,xuehao)==0)
    {scanf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);
    flag=0;
    }
   if(flag!=0) printf("没有查到可修改的数据");   
}
void insert(int count)
{
    int i;
    char xuehao[20];
    if(count==100)
    {printf("空间已满");
    return ;}
    printf("请输入学号\n");
    scanf("%s",xuehao);
        for(i=0;i<count;i++)
    if(strcmp(tongxun[i].num,xuehao)==0)
    {printf("已经有相同的编号");return ;}printf("count %d",count);count++;printf("count %d",count);
    strcpy(tongxun[i].num,xuehao);
    printf("请按顺序依次输入学生班级、姓名、学号、家庭地址、电话号码、邮件名、微信名\n");
    scanf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);}
void delet(int count)
{
    int i,j,flag=1,t;
    char xuehao[20];
    char xingming[20]={'\0'};
    printf("1 姓名2学号");
    printf("输入1或2");
        scanf("%d",&t);
    if(t==1)
    {printf("输入姓名\n");
    scanf("%s",xingming);
    for(i=0;i<count&&flag;i++)
    if(strcmp(tongxun[i].name,xingming)==0)
    {for(j=i;j<count-1;j++)
    tongxun[j]=tongxun[j+1];
    flag=0;
    count--;
    }tongxun[j]=tongxun[j+1];}
        else if(t==2)
    {    printf("请输入学号");
        scanf("%s",&xuehao);
        for(i=0;i<count&&flag;i++)
            if(strcmp(tongxun[i].num,xuehao)==0)
            {for(j=i;j<count-1;j++)
    tongxun[j]=tongxun[j+1];
    flag=0;
    count--;
            }
            else printf("没有查询到可以删除的数据");
        }}
        
void paixu(int count)
{
int i,j;
    struct tongxunguanli p;
    for(j=0;j<count-1;j++)
    for(i=0;i<count-1-j;i++)
    if(strcmp(tongxun[i].num,tongxun[i+1].num)>0)
    {p=tongxun[i+1];
    tongxun[i+1]=tongxun[i];
    tongxun[i]=p;
    }
}        
    void cunchu(int count)
    {
        FILE *fp,*file;
        int i;
        if((fp=fopen("st.dat","wb"))==NULL)
        {
            printf("can not open file\n");
            return;
        }
        for(i=0;i<count;i++)
        if(fwrite(&tongxun[i],sizeof(struct tongxunguanli),1,fp)!=1)
        {
            printf("file write error\n");
        }
        fclose(fp);
        if((file=fopen("st.dat","wb"))=NULL)
            {printf("can not open file\n");
        return;}
        fread(&tongxun[i],sizeof(struct tongxunguanli),1,fp);
        for(i=0;i<count;i++)
        printf("%s %s %s %s %s %s %s",tongxun[i].clas,tongxun[i].name,tongxun[i].num,tongxun[i].address,tongxun[i].tele,tongxun[i].mail,tongxun[i].whchat);
            fclose(file); }




这是题目   其中代码有几个问题没修改   主要问的是最后那个文件为什么将信息后文件还是为空
(三)通讯录管理系统的设计与实现
1. 项目描述
设计与实现一同学通讯录
2. 系统设计说明
(1)创建通讯录:输入学生的班级、姓名、学号、性别、家庭住址、电话号码、邮箱名、微信名等,并将它们存放在对应的数组中;每输入一组数据,记录数增1。
(2)显示通讯录:将记录学生姓名、学号和电话号码的数组中的数据一一输出到屏幕上,可以根据实际记录数确定循环次数。
(3)查询通讯录:分别按姓名和学号进行查询,查询时将输入的信息通过循环与相应数组成员一一进行比较。
(4)修改通讯录:输入需要修改记录的学号,通过循环查找到该记录后,再输入新数据替代原有数据。
(5)添加通讯录:判断输入的学号是否重复,若不重复再将输入的信息添加到对应的数组中,每输入一组数据,记录数增1。
(6)删除通讯录:分别按学号和姓名进行删除。
(7)排序通讯录:分别按学号和姓名进行排序。排序方式可以是升序或降序。
(8)文件存储:把通讯录信息存入到文件中。
(9)文件导入:从文件中导入数据到系统中,然后进行管理。
(10)退出。

[此贴子已经被作者于2021-1-5 18:33编辑过]

搜索更多相关主题的帖子: count int printf 输入 void 
2021-01-05 18:30
快速回复:求助 向文件输入信息后问什么文件还是为空啊
数据加载中...
 
   



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

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