关于读文件
typedef struct{
charName[12];
BYTENone1;
BYTENone;
float Alarm;
BYTE Control;
BYTESwitch;
BYTE Frequency;
BYTE Station;
BYTE Other;
}POINTS;
typedef struct{
charName[20];
BYTE None;
}LINEBOX;
typedef struct{
intYY;
intMM;
intDD;
BYTE None;
}PASS;
typedef struct{
BYTEStart;/*总测点数起始值*/
BYTEEnd;/*总测点数截止值*/
}AREA;
typedef struct{
AREAArea[6];
POINTS Points[MAXPNUM];
BYTEBoxNumber;
LINEBOX LineBox[32];
charUserName[31];
int BackDate;
charPassName[31];
BYTENo2;
PASSPassStr;
int FirstDate;
}INITDATA;
hFile=OpenFile( "C:\\INITDATA ",&OfStruct,OF_WRITE)
_write(hFile,(char *)&InitData,sizeof(InitData));
_close(hFile);
现在想读取C:\\INITDATA中的内容,怎么做?
_read(hFile,(char *)&InitData,sizeof(InitData));
这样读出来的是乱码为什么?
[解决办法]
最好不要混用API和c库,即使是ms提供的兼容库函数
写文件时用
FILE* f = fopen( "C:\\INITDATA ", "wb " );
fwrite( (void*)&InitData, sizeof(InitData), 1, f);
close(f);
读取时
FILE* f = fopen( "C:\\INITDATA ", "rb " );
fread( (void*)&InitData, sizeof(InitData), 1, f );
close(f);
[解决办法]
汉字都是双字节的,而且每个字节的ASCII码都是> 128的,当然在WATCH窗口中全是乱码了
[解决办法]
汉字的数据应该没有错,看看你的显示设置问题。