fseek(pFile,0L,SEEK_SET);//文件指针指向文件头
fscanf(pFile,"%s%d%f%f",strLFTID,&nNumInSCTable,&dStartAngle,
&dAngleInterval);
m_strSCTableID=strLFTID; // 该行不能赋值成功
m_nNumInSCTable=nNumInSCTable;
m_dStartAngle=dStartAngle;
m_dAngleInterval=dAngleInterval;运行到第二行的时候我在调试的时候都能看到strLFTID,nNumInSCTable,dStartAngle,dAngleInterval的值依次为str001,100,25.5,0.5, 继续执行以下四行,(其中m_strSCTableID为与一个CEdit绑定的CString变量, m_nNumInSCTable为与一个CEdit绑定的int变量, m_dStartAngle为与一个CEdit绑定的float变量, m_dAngleInterval为与一个CEdit绑定的float变量,),结果后三行都能正确赋值,只有m_strSCTableID=strLFTID不能赋值成功;执行后m_strSCTableID的值为空(之前已赋初值),为什么??? 难道CString变量不能直接用”=”赋值吗?? 怪事???
fscanf(pFile,"%s%d%f%f",strLFTID,&nNumInSCTable,&dStartAngle,
&dAngleInterval);
m_strSCTableID=strLFTID; // 该行不能赋值成功
m_nNumInSCTable=nNumInSCTable;
m_dStartAngle=dStartAngle;
m_dAngleInterval=dAngleInterval;运行到第二行的时候我在调试的时候都能看到strLFTID,nNumInSCTable,dStartAngle,dAngleInterval的值依次为str001,100,25.5,0.5, 继续执行以下四行,(其中m_strSCTableID为与一个CEdit绑定的CString变量, m_nNumInSCTable为与一个CEdit绑定的int变量, m_dStartAngle为与一个CEdit绑定的float变量, m_dAngleInterval为与一个CEdit绑定的float变量,),结果后三行都能正确赋值,只有m_strSCTableID=strLFTID不能赋值成功;执行后m_strSCTableID的值为空(之前已赋初值),为什么??? 难道CString变量不能直接用”=”赋值吗?? 怪事???
m_strSCTableID确定为一CEdit控件的成员变量吗?
试试 m_strSCTableID = "Test"; // 看看该行能不能赋值成功
我也是这么想的,我也直接使用
m_strSCTableID = "good";
调试证明是可以赋值的;但是就是 m_strSCTableID=strLFTID; 不能成功;而此时已经存在strLFTID="good"; 何解??
另外声明一点:我在该对话框中使用了MSFlexGrid控件,应该不会有影响? MSFlexGrid控件与以上几个控件没有联系!!
添加一个临时CString变量:
CString temp=strLFTID;
m_strSCTableID=temp;但是不解为何是这样??!!
fscanf(pFile,"%s%d%f%f",strLFTID,&nNumInSCTable,&dStartAngle,
&dAngleInterval);//这一句我只是读出一个文本文件中的一行数据而已,数据排列如下:
str001 100 25.5 0.5
况且我执行完这句后,调试显示strLFTID,nNumInSCTable,dStartAngle,dAngleInterval四个变量的值已经等于文本文件中的值,为什么要用一个变量来过渡呢?
好困惑哟!!!!
是堆栈变量吧,在其下一行赋值后可能覆盖了strLFTID。你在strLFTID、nNumInSCTable之间定义一个变量(此变量不用做任何操作),再看是否能赋值成功?