| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1585 人关注过本帖
标题:结构体文件操作
取消只看楼主 加入收藏
育帝
Rank: 2
来 自:黑龙江哈尔滨
等 级:论坛游民
帖 子:75
专家分:43
注 册:2016-10-16
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:4 
结构体文件操作
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Users
{
    char number[17];
    char name[14];
    char password[10];
    short mark;
    double cash;
}Use;
const long Len=sizeof(Use);
void oaccount()//开户
{
    long last;
    Use * p;
    FILE *fp;
    p = (Use *) malloc(sizeof(Use));
    fp = fopen("D:\\新建文件夹\\file.txt", "wb");
    printf("请输入账号:");
    scanf("%s", p->number);
    printf("请输入姓名:");
    scanf("%s", p->name);
    printf("请输入密码:");
    scanf("%s", p->password);
    p->cash=0;
    fwrite(p, sizeof(Use), 1, fp);
    fclose(fp);
    fp = fopen("D:\\新建文件夹\\file.txt", "rb");
    fread(p, sizeof(Use), 1, fp);
    printf("\n %s %s %s %lf", p->number, p->name, p->password, p->cash);
    fclose(fp);
    free(p);
}
void saving()
{
    Use *p;
    p = (Use *) malloc(sizeof(Use));
    p->number[17]="ss";//直接赋值后也无法输出,输出是空白。
    printf("\n%s", p->number);
}
void main()
{
    //oaccount();
    saving();
}
我:
我在开户的子函数中把结构体存进文件后,再在存款的子函数中读取文件,不能输出出来,输出的是乱码
我:
而且直接在存款子函数中给账号赋值,输出的是空白
懂得留个qq也可以吧
相互回复太费时了。
想直接讨教一下

搜索更多相关主题的帖子: 新建文件夹 password include double number 
2017-03-10 16:58
育帝
Rank: 2
来 自:黑龙江哈尔滨
等 级:论坛游民
帖 子:75
专家分:43
注 册:2016-10-16
收藏
得分:0 
回复 2楼 wp231957
Use *p;
    p = (Use *) malloc(sizeof(Use));
    FILE *fp;
    fp = fopen("D:\\新建文件夹file.txt", "rb");
    fseek(fp,(long)k*Len,SEEK_SET);
    fread(p, sizeof(Use), 1, fp);
    printf("\n%lf",p->number);
    fclose(fp);
    free(p);
这种情况也不可以啊。。。
能介绍个方法吗??

育帝
2017-03-10 22:04
育帝
Rank: 2
来 自:黑龙江哈尔滨
等 级:论坛游民
帖 子:75
专家分:43
注 册:2016-10-16
收藏
得分:0 
回复 4楼 wp231957
首先谢谢您帮我修改代码。您不要介意。但是怪我没有说清楚要求。我写的是一个银行卡管理系统。后面需要进行随机访问。而且老师要求用fread和fwrite进行文件操作。
并动态申请内存开户。
我一直想不明白如何把文件中的结构体输出。老师说我不能直接对字符串赋值。
我一直想不明白
void saving()
{
    double money;
    Use *p;
    p = (Use *) malloc(sizeof(Use));
    FILE *fp;
    fp = fopen("D:\\新建文件夹file.txt", "rb");
    fseek(fp,0L,SEEK_SET);
    printf("请输入要存款的金额:");
    scanf("%lf", &money);
    fwrite(p, sizeof(Use), 1, fp);
    printf("\n%lf",p->cash);
    fclose(fp);
    free(p);
}

写数据也写不进去。
如果调用文件输出信息(账号,密码之类),也不行
fp = fopen("D:\\新建文件夹file.txt", "rb");
    fseek(fp,0L,SEEK_SET);
fread(p, sizeof(Use), 1, fp);


我一直弄不懂。
您再允许我请求您帮我再看看吧

育帝
2017-03-11 09:00
育帝
Rank: 2
来 自:黑龙江哈尔滨
等 级:论坛游民
帖 子:75
专家分:43
注 册:2016-10-16
收藏
得分:0 
回复 7楼 wp231957
麻烦问一下为什么sprintf和fwrite要一起使用呢

育帝
2017-03-11 13:33
育帝
Rank: 2
来 自:黑龙江哈尔滨
等 级:论坛游民
帖 子:75
专家分:43
注 册:2016-10-16
收藏
得分:0 
回复 7楼 wp231957
谢谢您的答复,还帮我修改代码。受累了。

育帝
2017-03-11 20:12
快速回复:结构体文件操作
数据加载中...
 
   



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

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