初学者,想把数组里的奇数写入文件,不知道为什么txt文件里什么都没有

数组里的奇数写入文件,不知道为什么txt文件里什么都没有

#include <stdio.h>
int main()
{
int i,a[6];
int x=0;
printf("输入六个数:\n");
char str[6];
for(i=0;i<6;i++)
{
scanf("%d",&a[i]);
if(a[i]%2==1)
{
str[x]=a[i];
x=x+1;
}
}
FILE *fp;
gets(str);
fp=fopen("d:\a.txt","w");
fputs(str,fp);
fclose(fp);
return 0;
}

运行结果及报错内容 可以在d盘生成a.txt文件,但是里面什么都没有

我想要达到的结果 例如输入1 2 3 4 5 6,输出1 3 5

int main()
{
    int i,a[6];
    int x=0;
    printf("输入六个数:\n");
    char str[6];
    for(i=0;i<6;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]%2==1)
        {
            str[x]=a[i];  //这里str已经写入值了
            x=x+1;
        }
    }
    FILE *fp;
    //gets(str);   //这个注释掉。
    fp=fopen("D:/a.txt","w");
    fputs(str,fp);
    fclose(fp);
    return 0;
}

img

输入的是int字符,但是写入的是对应的ASCII码字符
举个例子:输入a[0]是5,输出的str[0]是一个ASCII码为5的字符,所以最后输出到文件的是一个不可见字符