c语言/文件

来源:百度知道 编辑:UC知道 时间:2024/06/09 11:35:05
#include<stdio.h>
struct student
{
char name[10];
int num;
int age;
}stud[4];
void save()
{
FILE *fp;
int i;
char a[20];
printf("请输入你要打开的文件!\n");
scanf("%s",a);
if((fp=fopen(a,"wb"))==NULL)
printf("cnanot open the file!\n");
for(i=0;i<4;i++)
fwrite(&stud[i],sizeof(struct student),1,fp);
fclose(fp);
}
main()
{
int i;
printf("请输入4组学生数据!\n");
for(i=0;i<4;i++)
scanf("%s %d %d",stud[i].name,&stud[i].num,&stud[i].age);
save();
}

这个程序在运行后输入数据到文本文件中后,打开那个文本文件,出现乱码啊,不知怎么搞的,大侠帮帮忙啊

二进制文件,当然是乱码了。用FREAD读才行
如果操作文本文件,应该用函数fsprintf(读) 和fprintf(写)

if((fp=fopen(a,"wb"))==NULL)
已二进制只写方式打开
若要用文本方式 去掉b就行了