#define SIZE 2
struct worker
{char name[10];
int ID;
int basepay;
int jobpay;
int allowance;
int medicare;
int fund;
}work[SIZE];
............
void input()//写入职工数据
{ FILE *fp;
int i;
if((fp=fopen("work.txt","w"))==NULL)//wb只写
{
printf("无法打开此文件\n");
}
for(i=0;i<SIZE;i++)
if(fwrite(&work[i],sizeof(struct worker),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp);
}
写入字符可以,但是数字是乱码的,求大神指正,将fwrite改为fprintf也不行,急急急~~!~!~!
知道是二进制,怎么改呀大神,,,
追答你要意思是要写入成可见的ascii形式的数字吗
那么写入的时候需要将数字进行转换
也就是将int转换成char *
结构体内所有的int数据都需要转换
可以使用sprintf进行简单的转换
比如
#include <stdio.h>这样写入文件时写入转换后的数据就可以正常显示了
不过如果你要这样做的话下次读取的时候还是再转换回来
不然读取回来的就是字符串而不是数字了
解压文件出现中文乱码怎么办解决办法
华为Mate50 Pro曲面旗舰手机
¥6799
苹果 AirPods Pro 2代
¥1699
索尼65英寸4K HDR专业游戏电视
¥7499
惠普战66五代15.6英寸轻薄本
¥4399
查
看
更
多