有关文件的操作
struct student_type stud[]={{"zhang ",1001 ,10 ,"room101 "}, {"fun ",1002 ,20 ,"room102 "},
{"tan ",1003 ,21 ,"room103 "},{"ling ",1004 ,21 ,"room104 "}};
FILE *fp;
fp=fopen("f:\\6_1_1.txt","wb+");
int i;
for(i=0;i<SIZE;i++)
fwrite(&stud[i],sizeof(struct student_type),1,fp);
//fwrite(stud,sizeof(struct student_type),4,fp);
fclose(fp);
struct student_type
{
char name[10];
int num;
int age;
char addr[15];
};
我是一个初学着者,
程序运行后总是会出现乱码啊
我是在 vc++6.0下编译的
问题点数:10、回复次数:6Top
1 楼kkkgk(skyblue)回复于 2006-06-02 08:43:24 得分 0
什么意思,出现乱码是写入txt文件中是乱码?Top
2 楼lfchen(一条晚起的虫--床上用品[家纺]专卖)回复于 2006-06-02 08:51:06 得分 0
{"zhang ",1001 ,10 ,"room101 "}等,写入txt文件,用记事本打开,显示的是ascii码。1001,10等的ascii当然是乱码。既然你是用二进制方式写入,建议用editplus等已二进制察看Top
3 楼xlzxlich(阳光)回复于 2006-06-02 08:52:40 得分 0
分字段写看看:
for(i=0;i<SIZE;i++)
{
fwrite(&stud[i].name,10,1,fp);
}
Top
4 楼wzh19831221()回复于 2006-06-02 22:25:55 得分 0
但是我用文本打开时对应时1001,10也是乱码啊Top
5 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-06-02 22:50:56 得分 0
当然是乱码!
1001,10根本就不是文本数据,是二进制,楼主你懂吗?Top
6 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-06-02 22:54:37 得分 0
struct student_type stud[]={{"zhang ",1001 ,10 ,"room101 "}, {"fun ",1002 ,20 ,"room102 "},
{"tan ",1003 ,21 ,"room103 "},{"ling ",1004 ,21 ,"room104 "}};
FILE *fp;
fp=fopen("f:\\6_1_1.txt","wb+");
int i;
char szTemp[20];
for(i=0;i<SIZE;i++)
{
fwrite( stud.name, strlen( stud.name) );
itoa( stud.num, szTemp, 10 );
fwrite( szTemp, strlen(szTemp) );
itoa( stud.age, szTemp, 10 );
fwrite( szTemp, strlen(szTemp) );
fwrite( stud.addr, strlen(stud.addr) );
}
fclose(fp);
struct student_type
{
char name[10];
int num;
int age;
char addr[15];
};
Top




