为什么保存到文件的数据不是十进制

 为什么和我输入的不一样啊,怎么修改啊,求各位大佬指点

  •  
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
typedef struct user{
	int numb;
    char  name[10];
    char password[7];
    float   money;
    struct user *next;
  }user,*LinkedList;
LinkedList  LinkedListInit ()
{
    LinkedList head;
    head =(LinkedList)malloc(sizeof(user));
    head->next = NULL;
    return head;
}
int CreatHead(LinkedList head)
{
    LinkedList p;
    p = (LinkedList)malloc(sizeof(user));
    p ->numb=000000;
    for(int i=0;i<9;i++)
	{
        p ->name[i]='A';
    }   
    p ->money = 0;
    head->next = p;
    p->next = NULL ;
}
void add(LinkedList head)
{
    int k,num;
    char ch;
    char tempname[10];
    char tempassword[7];
    float tempmoney=0;
    LinkedList p,r;
    FILE *fp;
    fp=fopen("data.txt","a+");
    if((fp=fopen("data.txt","a+"))==NULL) 
    { 
        printf("cannot open file!\n"); 
        exit(1); 
    }
    void getpassword(char *password);
    do{  
        num = rand()%100000*10; //随机生成   
      }while((num/100000)==0);//检查是否是六位数
    printf("系统为你自动生成的6位数帐号是%d\n",num);
    printf("请输入用户姓名:");
    fflush(stdin);
    for(int i=0;i<9;i++)
	{
        scanf("%c",&ch);
        if(ch == '\r' || ch == '\n') break;
            tempname[i] = ch;
    }   
    tempmoney=0;
    p = head->next; 
    r =(LinkedList)malloc(sizeof(user));
    r->numb = num;
    for(int i=0;i<9;i++)
	{
        r->name[i]=tempname[i];
        r->password[i]=tempassword[i];
    }
    r->money = tempmoney;
    r = p;
    r->next=NULL;
    k=fprintf(fp, "%d %s %s %d\n",&r->numb,&r->password,&r->name,&r->money);
    printf("您已完成开户操作,任意键返回主菜单。");
    fclose(fp);
}
int main()
{
	LinkedList head;
    head=LinkedListInit();
    CreatHead(head);
    add(head); 
    return 0;
}

 

可以在数据写入文件的地方就是fprintf时,先把数据转换为字符串(即纯字符) ,然后再写入文件,这样才可以得到纯txt文件, 直接fprintf(fp, "%d %s %s %d\n",&r->numb,&r->password,&r->name,&r->money);这样整型按照字节写入,你直接打开txt文件看到不出来的
如果需要,可以按以下修改:


char tmpstr[64];//字符串缓存
//需要先把整型和字符串类型都保存为字符串类型,最后在txt文件查看的才是字符
sprintf(tmpstr,"%d %s %s %d",&r->numb,&r->password,&r->name,&r->money);
k=fprintf(fp, "%s\n",tmpstr);//把字符串写入文件