关于c语言中用二进制读写文件的方式
我的问题就是 键入了信息之后 使用记事本打开时会乱码是什么原因呢?
还有在这里_scanf("%s%d",stud[i].name,&stud[i].id);_ 时我到底需不需要输入中间的空格呢?如果按照一般的话 是不需要 可是如果我不在%s和%d内容中间输入空格 那么就会多输入一组数据 请问是什么原因呢?
#define SIZE 2
struct student
{
char name[10];
int id;
}stud[SIZE];
//定义函数save 向文件输出size个学生的数据
void save()
{
FILE* fp;
int i;
if ((fp = fopen("stu_dat", "wb")) == NULL)
{
printf("no!\n");
return;
}
for (i = 0; i < SIZE; i++)
{
if (fwrite(&stud[i], sizeof(struct student), 1, fp) != 1)
printf("file write error\n");
}
fclose(fp);
}
int main()
{
int i;
printf("enter data:\n");
for (i = 0; i < SIZE; i++)
{
scanf("%s%d",stud[i].name,&stud[i].id);
printf("第%d次循环输出\n", i);
}
save();
return 0;
}