C fwrite
C fwrite 写入的结果是乱码????
fp = fopen("data.txt","w") ;
我用 fwrite ( & stu [ i ] ,sizeof (struct student ) ,1 ,fp ) 结果保存的txt 文件打开是乱码。
你用wb试试 倒转了?
fwrite(&stu, 1, sizeof(struct student), fp); claws0n 发表于 2018-9-2 20:39
倒转了?
fwrite(&stu, 1, sizeof(struct student), fp);
没有。。
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
其中,ptr:指向保存数据的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针
函数返回写入数据的个数。 什么时候fwrite可以直接写结构体还不乱码?
文件格式是不是不对,得用UTF-8的格式试试 人造人 发表于 2018-9-3 00:10
什么时候fwrite可以直接写结构体还不乱码?
这是我看的一本《c语言项目开发》上面的。。。你的意思是不管是wb还是UTF-8都不行吗?
#include <stdio.h>
struct Student
{
char name;
int age;
int score;
};
void WriteFile(FILE *file, struct Student *s)
{
fprintf(file, "%s\t%d\t%d", s->name, s->age, s->score);
fprintf(file, "\n");
}
int main(void)
{
struct Student s = {{"小红", 13, 97}, {"小丽", 15, 90}, {"小玲", 16, 98}};
FILE *file = fopen("Student.dat", "w");
fprintf(file, "姓名\t年龄\t分数\n");
WriteFile(file, &s);
WriteFile(file, &s);
WriteFile(file, &s);
fclose(file);
return 0;
}
fwrite函数是以二进制形式对文件进行操作的,使用fwrite函数进行结构体数组操作势必会出现错误
页:
[1]