文件txt1内容:
5
50.0 -17.8
52.9 -17.6
56.0 -17.4
59.4 -16.9
63.0 -16.2我用的是MFC对话框创建程序,并设置另一个Button1.
程序:
void CTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here CClientDC dc(this);
CStdioFile File;
int m_PointNum,i;
CPoint m_ptOrigin,m_point; File.Open("1.txt",CFile::modeRead); //以读模式打开文本文件
CString FileData; //定义一个CString变量作为缓冲区
File.ReadString(FileData);//读取第一行数据,第一行数据为坐标点数据
char TempStr1[10];
char TempStr2[10];
memset(TempStr1,'\0',10);
memset(TempStr2,'\0',10);
sscanf(FileData,"%s",TempStr1);
m_PointNum = atoi(TempStr1); // 获取坐标点个数
for (i=0;i<m_PointNum;i++)
{
File.ReadString(FileData);
sscanf(FileData,"%s %s",TempStr1[i+1],TempStr2[i+1]); m_point.y=atoi(TempStr2);
m_point.x=atoi(TempStr1);
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_point);
m_ptOrigin=m_point;
}
}编译无错,但是无法显示绘图,请问是什么原因呢
5
50.0 -17.8
52.9 -17.6
56.0 -17.4
59.4 -16.9
63.0 -16.2我用的是MFC对话框创建程序,并设置另一个Button1.
程序:
void CTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here CClientDC dc(this);
CStdioFile File;
int m_PointNum,i;
CPoint m_ptOrigin,m_point; File.Open("1.txt",CFile::modeRead); //以读模式打开文本文件
CString FileData; //定义一个CString变量作为缓冲区
File.ReadString(FileData);//读取第一行数据,第一行数据为坐标点数据
char TempStr1[10];
char TempStr2[10];
memset(TempStr1,'\0',10);
memset(TempStr2,'\0',10);
sscanf(FileData,"%s",TempStr1);
m_PointNum = atoi(TempStr1); // 获取坐标点个数
for (i=0;i<m_PointNum;i++)
{
File.ReadString(FileData);
sscanf(FileData,"%s %s",TempStr1[i+1],TempStr2[i+1]); m_point.y=atoi(TempStr2);
m_point.x=atoi(TempStr1);
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_point);
m_ptOrigin=m_point;
}
}编译无错,但是无法显示绘图,请问是什么原因呢
char TempStr2[10]; 太小了,一行字符可见的就10个,您先把数组加大取100以上。
这句可以把50.0 -17.8分成两个点放进TempStr1,TempStr2么?