| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1155 人关注过本帖
标题:有关二进制文件操作的问题
取消只看楼主 加入收藏
gentry422
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2017-12-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
有关二进制文件操作的问题
事先定义了结构体
例如:struct
{ char name[10];
char number[];
}classmate[10];
并且已经将数据写入了二进制文件
但是如何实现对任意一个结构体的某个数据进行修改,并写入二进制文件中中?
比如我要修改 名字是张三的number信息(张三的信息在文件中存在)

边读编写以前文件的数据怎么办?会不会丢失?
我现在要解决的问题是 一个文件中有了很多数据。我想通过找到一个人的姓名来修改他的其他数据,另外的数据不变,文件名也不变,请问这个如何实现。
我的想法如下,可是无法实现。我是新手,麻烦大神了   
typedef struct
{
    char name[10];
    char nickname[10];
    char province[10];
    char qqnum[13];
    char phonenum[13];
    char university[22];
    char profession[20];
    char remark[20];
}Classmate;
Classmate addr[SIZE];

void rewrite()
{
    FILE *fp;
    int i;
    char x[20],y[20];
    if(!(fp=fopen("class_list","rb+")))
    {
        printf("Cannot open the file!");
        exit(0);
    }
    printf("请输入你要找修改的名字:");           //用i找出那个人的地址
    scanf("%s",&x);
    for(i=0;fread(&addr[i],sizeof(Classmate),1,fp)!=0;++i)
    {
        if(strcmp(addr[i].name,x)==0) break;            
    }
    printf("修改为:");                          //修改那个人的nickname
    scanf("%s",&y);
    if(fwrite(&addr[i].name,sizeof(addr[i].nickname),1,fp)!=1)
    {
        printf("error");
        exit (0);
    }
    else{printf("sucess!");}
            fclose(fp);
}  

[此贴子已经被作者于2017-12-5 13:50编辑过]

搜索更多相关主题的帖子: 文件 char 数据 修改 printf 
2017-12-05 10:16
gentry422
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2017-12-5
收藏
得分:0 
回复 2楼 吹水佬
但是还有个问题,,那个CLASSMATE cm;定义这个有什么用?不了解这个用法,能讲讲吗?

[此贴子已经被作者于2017-12-5 14:33编辑过]

2017-12-05 13:24
gentry422
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2017-12-5
收藏
得分:0 
回复 2楼 吹水佬
谢谢,我已试过能修改

[此贴子已经被作者于2017-12-5 14:32编辑过]

2017-12-05 13:36
快速回复:有关二进制文件操作的问题
数据加载中...
 
   



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

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