数组里的奇数写入文件,不知道为什么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;
}
输入的是int字符,但是写入的是对应的ASCII码字符
举个例子:输入a[0]是5,输出的str[0]是一个ASCII码为5的字符,所以最后输出到文件的是一个不可见字符