文件数据的存取
我定义了如下一个结构体
struct ShipBasic
{
Cstring Name;
float T;
float K;
float OMIGA;
float EPS;
};sbContent
保存内容时如下:
if((mFile=fopen(strFileName,"w"))!=NULL)
{
fwrite(&sbContent,sizeof(struct ShipBasic),1,mFile);
fclose(mFile);
}
可当我用下面的语句读取文件数据时老是弹出带有“终止,重试,忽略”三个按钮的对话框
if((mFile=fopen("SteerParams/" +strSel+"/BasicParams.txt","r"))!=NULL)
{
fread(&sbContent,sizeof(struct ShipBasic),1,mFile);
//填写对话框上的各个控件
fclose(mFile);
}
当我把结构体中的Name删除后就可以了,这是为什么,要达到同样的目的该如何修改?
问题点数:20、回复次数:6Top
1 楼zhangyilan(数字通信)回复于 2002-10-04 16:12:55 得分 0
将Name改为char 型的就可以了吧
为了达到你的目的
将控件变量做一下类型转换就可以呀
Top
2 楼softman_2000(超越昨天)回复于 2002-10-04 16:16:46 得分 1
CString 实际上是一个指针,他值像一个字附书组,最好不要这么用。
直接用char Name[16];就可以。使用CString是不行的。Top
3 楼new1mm(牛一哞@引刀削愁)回复于 2002-10-04 16:19:58 得分 2
动态字符串是麻烦呀,他怎么知道你的字符串有多长呢?所以结果中应该有一个表示字符串长度的变量,在读取时先读取这个变量,在用这个变量来指示后面字符串的长度。Top
4 楼nuaawenlin(飘人)回复于 2002-10-04 16:45:11 得分 2
同意: new1mm(引刀削愁) 的看法,还有,为了方便,你最好编两个函数,一个用做文件读出时,保存各个字符串的长度,另一个函数用做文件读入时,要读多少字节.定义一个数组来实现Top
5 楼eehinjor(不怕您笑话)回复于 2002-10-06 22:00:00 得分 0
CString不行的,你要换为CHAR*Top
6 楼msmchang(向您学习)回复于 2002-10-06 22:03:36 得分 15
CString不行的,你要换为CHAR*
Top




