设置为fread fwrite UTF-8编码问题,怎么解决

设置为fread fwrite UTF-8编码问题,怎么解决,第1张

例如(为简单,我把读写放在一个程序里)

#include <stdio.h>

#include <stdlib.h>

#define SIZE 2

struct student_type

{

char name[10]

int num

int age

char addr[15]

}stud[SIZE]

FILE *fin

void main()

{

int i

FILE *fp

// 给值

strcpy(stud[0].name,"xz")

stud[0].num=1

stud[0].age=15

strcpy(stud[0].addr,"abcd")

strcpy(stud[1].name,"xw")

stud[1].num=2

stud[1].age=17

strcpy(stud[1].addr,"efgh")

// 打开,写出

fp=fopen("text.txt","wb")

for(i=0i<SIZEi++)

fwrite(&stud[i],sizeof(struct student_type),1,fp)

fclose(fp)

// 清数据

strcpy(stud[0].name,"")

stud[0].num=0

stud[0].age=0

strcpy(stud[0].addr,"")

strcpy(stud[1].name,"")

stud[1].num=0

stud[1].age=0

strcpy(stud[1].addr,"")

// 打开,读入

fp=fopen("text.txt","rb")

for(i=0i<SIZEi++)

{

fread(&stud[i],sizeof(struct student_type),1,fp)

// 打印 3 项

printf("%s %4d %s\n",stud[i].name, stud[i].age,stud[i].addr)

}

fclose(fp)

}

fopen和fwrite不会改变文件的编码类型,这两个函数是二进制安全的,也就是写进去的数据库在二进制级别是原样保存的,你自己写入数据的时侯要注意字符的编码,必要时侯使用iconv进行转换。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7836588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存