求解释 乱码有关问题

求解释 乱码问题
程序:
   FILE *fp = fopen("a.txt","w");
FILE *fp1 = fopen("b.txt","w");

char name[10],password[6];
int j=0;
int ch=0;
srand(time(NULL));
for (int i = 0;i < 9;i++)
{
name[i] = rand()%9;
}
printf("\n你的账号为:\n");
for (int i = 0;i < 9;i++)
{
printf("%d",name[i]);
}
printf("\n输入密码:\n");
for (j = 0;j < 6;j++)
{
do 
{
ch = getch();
} while (!(isdigit(ch)));
printf("*");
password[j] = ch;
}
fprintf(fp,"%s",name);
fprintf(fp1,"%s",password);
fflush(stdin);
printf("\n账号注册成功!\n");
fclose(fp);
fclose(fp1);

return 0;

在文件中出现  121212烫烫烫烫烫   这样的乱码??怎么解释???

------解决方案--------------------
6位密码的话
password[6];
改为
password[6 + 1];
------解决方案--------------------
字符串结尾缺少结束符'\0'。定义空间时要预留一个结束符的大小
------解决方案--------------------
char name[10] = {0},password[7] = {0};  // 要初始化,长度要预留结束符

注释掉这句 password[j] = ch;

------解决方案--------------------
引用:
char name[10] = {0},password[7] = {0};  // 要初始化,长度要预留结束符

注释掉这句 password[j] = ch;
看错了,不能注掉这句 password[j] = ch;

------解决方案--------------------
我感觉是类型转换出错了
------解决方案--------------------
password初始化做了如下更改:

password[6+1] = {0};

代码其他地方不变。
------解决方案--------------------
引用:
引用:引用:程序:
   FILE *fp = fopen("a.txt","w");
FILE *fp1 = fopen("b.txt","w");

char name[10],password[6];
int j=0;
int ch=0;
srand(time(NULL));
for ……
这样可以用
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string>
FILE *fp = fopen("a.txt","w");
FILE *fp1 = fopen("b.txt","w");

int main()
{
char name[10],password[7],pname[10];
int j=0;
int ch=0;
srand(time(NULL));
for (int i = 0;i < 9;i++)
{
name[i] =rand()%9+'0';
}
name[9]='\0';
printf("\n你的账号为:\n");
for (int i = 0;i < 9;i++)
{
pname[i]=name[i]-'0';
printf("%d",pname[i]);
}
printf("\n输入密码:\n");
for (j = 0;j < 6;j++)
{
do 
{
ch = getchar();
} while (!(isdigit(ch)));
printf("*");
password[j] = ch;
}
password[6]='\0';
fprintf(fp,"%s",name);
fprintf(fp1,"%s",password);
fflush(stdin);
printf("\n账号注册成功!\n");
fclose(fp);
fclose(fp1);

return 0;
}

------解决方案--------------------