| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:修改文件的某一数据
取消只看楼主 加入收藏
夏时雨
Rank: 2
等 级:论坛游民
帖 子:45
专家分:75
注 册:2013-10-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
修改文件的某一数据
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define Byt sizeof(struct phone)
typedef struct phone
{
    char num[7];
    char name[12];
    //struct phone *po;
}Qhone;
FILE *File;
void main()
{
    void add();//添加
    void inquire();//查询
    void update();//更新
    void delet();//删除

    char ins;

    printf("请输入指令(l 查询,u 更新,d 删 除,a添加):  ");
    scanf("%c",&ins);

    if(ins=='l'||ins=='L')
    {
        inquire();
    }
    else if(ins=='u'||ins=='U')
    {
        update();
    }
    else if(ins=='d'||ins=='D')
    {

        delet();
    }
    else if(ins=='a'||ins=='A')
        add();
    else
    {
        getchar();
        printf("输入指令错误,请重新输入。");
        printf("\n");
        main();
    }
}
void add()//添加函数
{
    Qhone *qh;

    qh=(Qhone *)malloc(Byt);

    if((File=fopen("E:\\电话本.txt","ab"))==NULL)
    {
        printf("打开外部文件出错");
        exit(0);
    }

    printf("请输入名字与号码\n");
    printf("名字:    ");
    scanf("%s",qh->num);
    printf("号码:    ");
    scanf("%s",qh->name);

    if(fwrite(qh,Byt,1,File)==1);
    {
        printf("添加成功!\n");
    }
    fclose(File);
}
void inquire()//查询函数
{
    Qhone *qh;
    char a[10];//数组a用来存放你输入的号码或名字
    int rec=0;

   
    if((File=fopen("E:\\电话本.txt","rb"))==NULL)
    {
        printf("打开外部文件出错");
        exit(0);
    }

    printf("请输入你要查询的号码或者名字:");
    scanf("%s",a);
    qh=(Qhone *)malloc(Byt);//开辟大小为"Byt"的内存,返回值赋给Qhone类型指针“qh”。
        for(;!feof(File);)
        {
        fread(qh,Byt,1,File);
        if(strcmp(a,qh->name)==0||strcmp(a,qh->num)==0)
        {
            rec=1;
            printf("%s\n%s\n",(*qh).num,(*qh).name);
            break;
        }
    }
        if(rec==0)
        {
            printf("查无此人!\n");
        }
        fclose(File);
}
void update()//更新函数
{   
    char a[10];
    Qhone *qh;
    int rec=0;

    qh=(Qhone *)malloc(Byt);

    if((File=fopen("E:\\电话本.txt","rb+"))==NULL)
    {
        printf("打开外部文件出错");
        exit(0);
    }

    printf("请输入您要修改的名字或者号码: ");
    scanf("%s",a);

    for(;!feof(File);)
    {   
        fread(qh,Byt,1,File);
        if(strcmp(a,qh->name)==0||strcmp(a,qh->num)==0)
        {
            rec=1;

            printf("请输入新的名字与号码.\n");
            printf("名字:    ");
            scanf("%s",qh->num);
            printf("号码:    ");
            scanf("%s",qh->name);

            if(fwrite(qh,Byt,1,File)==1);
            {
                printf("修改成功!\n");
            }
            break;
        }
    }
    if(rec==0)
    {
        printf("查无此人!\n");
    }
    fclose(File);
}
void delet()//删除函数
{}
更新函数不能达到预期效果,改了数据却对“文件”无效,求解答!
搜索更多相关主题的帖子: include update 
2013-10-27 18:25
夏时雨
Rank: 2
等 级:论坛游民
帖 子:45
专家分:75
注 册:2013-10-11
收藏
得分:0 
回复 3楼 tlliqi
没有成功修改文件,并且修改成功的提示出来了

人生若只如初见
何事秋风悲画扇
2013-10-28 13:21
夏时雨
Rank: 2
等 级:论坛游民
帖 子:45
专家分:75
注 册:2013-10-11
收藏
得分:0 
回复 2楼 pauljames
有出现

人生若只如初见
何事秋风悲画扇
2013-10-28 13:21
夏时雨
Rank: 2
等 级:论坛游民
帖 子:45
专家分:75
注 册:2013-10-11
收藏
得分:0 
没人帮帮忙吗?

人生若只如初见
何事秋风悲画扇
2013-10-28 18:37
快速回复:修改文件的某一数据
数据加载中...
 
   



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

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