c语言结构体文件写入乱码.......
#include"stdafx.h"//倒入头文件structcopy_facilities{//影片属性结构体chartitle[5];charcopies[3];ch...
#include"stdafx.h"//倒入头文件
struct copy_facilities{//影片属性结构体
char title[5];
char copies[3];
char rental_duration[3];
char director[20];
char actor[20];
char genre[10];
};
void main()添加影片函数
{FILE *fp;copy_facilities copy1;//定义
fp=fopen("copy_facilities.txt","a");//打开文件
scanf("%s%s%s%s%s%s",©1.title,©1.copies,©1.rental_duration,copy1.director,copy1.actor,copy1.genre);//输入影片属性的各项值
fwrite(©1,sizeof(struct copy_facilities),1,fp);//写入文件
fclose(fp);//关闭文件
} 展开
struct copy_facilities{//影片属性结构体
char title[5];
char copies[3];
char rental_duration[3];
char director[20];
char actor[20];
char genre[10];
};
void main()添加影片函数
{FILE *fp;copy_facilities copy1;//定义
fp=fopen("copy_facilities.txt","a");//打开文件
scanf("%s%s%s%s%s%s",©1.title,©1.copies,©1.rental_duration,copy1.director,copy1.actor,copy1.genre);//输入影片属性的各项值
fwrite(©1,sizeof(struct copy_facilities),1,fp);//写入文件
fclose(fp);//关闭文件
} 展开
2个回答
展开全部
fwrite是将内存中的数据不经转换直接写入文件,所以文件中保存的是二进制形式,当然看到乱码了。
你可以试试:
fprintf(fp1,"%s%s%s%s%s%s",copy1.title,copy1.copies,copy1.rental_duration,copy1.director,copy1.actor,copy1.genre);
另外,输入字符串时,不用取地址。
scanf("%s%s%s%s%s%s",copy1.title,copy1.copies,copy1.rental_duration,copy1.director,copy1.actor,copy1.genre);
详细可以看看
http://zhidao.baidu.com/question/43885020.html
你可以试试:
fprintf(fp1,"%s%s%s%s%s%s",copy1.title,copy1.copies,copy1.rental_duration,copy1.director,copy1.actor,copy1.genre);
另外,输入字符串时,不用取地址。
scanf("%s%s%s%s%s%s",copy1.title,copy1.copies,copy1.rental_duration,copy1.director,copy1.actor,copy1.genre);
详细可以看看
http://zhidao.baidu.com/question/43885020.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、最好用2进制方法打开文件,用fwrite 写文件。读时也用用2进制方法打开文件,用fread读.这样,写的时候按整个结构写,读也按整个结构读,字符串有空白也没关系。
2、例程:
file *fp;
fp=fopen("my.dat","wb");
fwrite(&stu,sizeof(stu),1,fp); // 写1个结构
for (i=0;i<10;i++) fwrite(&student[i],sizeof(student),1,fp); // 写10个结构
fclose(fp);
fp=fopen("my.dat","rb");
fread(&stu,sizeof(stu),1,fp); // 读1个结构
for (i=0;i<10;i++) fread(&student[i],sizeof(student),1,fp); // 读 10个结构
fclose(fp);
2、例程:
file *fp;
fp=fopen("my.dat","wb");
fwrite(&stu,sizeof(stu),1,fp); // 写1个结构
for (i=0;i<10;i++) fwrite(&student[i],sizeof(student),1,fp); // 写10个结构
fclose(fp);
fp=fopen("my.dat","rb");
fread(&stu,sizeof(stu),1,fp); // 读1个结构
for (i=0;i<10;i++) fread(&student[i],sizeof(student),1,fp); // 读 10个结构
fclose(fp);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询