标题:关于文件操作
只看楼主
育帝
Rank: 2
来 自:黑龙江哈尔滨
等 级:论坛游民
帖 子:75
专家分:43
注 册:2016-10-16
结帖率:87.5%
已结贴  问题点数:20 回复次数:5 
关于文件操作
void saving()
{
    Use p;
    FILE *fp;
    fp = fopen("D:\\新建文件夹file.txt", "rb");
    fseek(fp,0L,SEEK_SET);
    fread(&p, sizeof(Use), 1, fp);
    printf("\n %s %s %s %lf", p.number, p.name, p.password, p.cash);
    fclose(fp);

}这是一个子函数,我想读一个结构体 Use  p
把文件中的内容 给 结构体 p ,但是输出后是其他的数据,乱码。为什么呢?
补充:我使用二进制写进文件的。运行结果

第一行是我在创建文件的子函数中以查询子函数同样的代码查询的。
在创建的子函数中可以查询。
但在另一个子函数中调用文件查询就不行了。出现第二行的乱码;
是我用动态申请内存造成的吗?
附加创建文件的函数:
void oaccount()//开户
{
    //int  last;
    Use * p;
    FILE *fp;
    p = (Use *) malloc(sizeof(Use));
    fp = fopen("D:\\新建文件夹\\file.txt", "ab");
    printf("请输入账号:");
    scanf("%s", p->number);
    printf("请输入姓名:");
    scanf("%s", p->name);
    printf("请输入密码:");
    scanf("%s", p->password);
    p->cash=0;
    //printf("请输入账号:");
    //scanf("%hd", &p->mark);
    //free(p);
    fwrite(p, sizeof(Use), 1, fp);
    fclose(fp);
    //memset(p,0,sizeof(Use));
    fp = fopen("D:\\新建文件夹\\file.txt", "rb");
    //fseek(fp,0L,SEEK_END);
    //last=ftell(fp);
    //printf("%d,%d ",last,sizeof(Use));
    fread(p, sizeof(Use), 1, fp);
    printf("\n %s %s %s %lf", p->number, p->name, p->password, p->cash);
    fclose(fp);
    free(p);
}

[此贴子已经被作者于2017-3-10 10:48编辑过]

搜索更多相关主题的帖子: 新建文件夹 saving 二进制 结构体 
2017-03-09 22:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
"D:\\新建文件夹file.txt"
要看看这个文件是怎样创建的
2017-03-10 07:34
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
得分:7 
fseek(fp,sizeof(use),SEEK_SET);试试,不知道有没有关系。

我是硬件工程师
2017-03-10 08:25
绿意盎然
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:47
专家分:60
注 册:2017-1-5
得分:7 
2017-03-10 08:36
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
得分:0 
2楼说的对,换 fp = fopen("D:\\新建文件夹file.txt", "r");试试

我是硬件工程师
2017-03-10 08:45
育帝
Rank: 2
来 自:黑龙江哈尔滨
等 级:论坛游民
帖 子:75
专家分:43
注 册:2016-10-16
得分:0 
回复 3楼 qdcs
嗯,试了没关系的

育帝
2017-03-10 10:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-474909-1-1.html




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

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