注册 登录
编程论坛 C语言论坛

fread函数为何读取不到文件中的正确数据,望大佬检查指导!

juele 发布于 2020-03-26 22:41, 1149 次点击
#include <stdio.h>
#include <stdlib.h>
#define N 2
struct xiaofei
{
    char name[8];
    float money;
    char yy[10];
}xr[N], xc[N];

int main()
{
    void duchu();
    int i;
    FILE *fp;
    if((fp=fopen("jilu.txt","ab"))==NULL)
    {
        printf("error!\n");
        exit(0);
    }
    for(i=0;i<N;i++){
    printf("请输入消费者姓名:\n");
    scanf("%s",&xr[i].name);
    printf("请输入消费金额:\n");
    scanf("%f",&xr[i].money);
    printf("请输入消费原因:\n");
    scanf("%s",&xr[i].yy);
    }
    fwrite(xr,sizeof(struct xiaofei),N,fp);
   
    printf("稍等。。。。。\n");
        duchu();
   
    return 0;
}

void duchu()
{
    int i;
    FILE *fp;
        if((fp=fopen("jilu.txt","ab"))==NULL)
    {
        printf("error!\n");
        exit(0);
    }

    rewind(fp);
    fread(xc,sizeof(struct xiaofei),N,fp);
    for(i=0;i<N;i++)
    {
    printf("%s%f%s",xc[i].name,xc[i].money,xc[i].yy);
    }
    fclose(fp);
}
如果(写入和写出)在同一个函数中可以正确读取数据,为什么分开到两个函数中就读取不出来正确的数据了呢   显示0.000000000000??请求大佬指导!!
1 回复
#2
forever742020-03-26 22:57
main里缺少fclose
另外读之前打开的时候应该"rb",起码"ab+"吧
1