如何在MFC中通过编辑框读入数组?
1个回答
展开全部
2:将编辑框中的数据保存到一个double的Vector中。
针对第1步,网上查了一个关于读取文件的程序如下:
CFileDialog fileDlg(TRUE);
if(fileDlg.DoModal() == IDOK){CString str;CFile f;
f.Open(fileDlg.GetFileName(),CFile::modeReadWrite);
f.Read(str.GetBuffer(f.GetLength()),f.GetLength());
f.Close();GetDlgItem( IDC_INPUTDATA )-SetWindowText( str);}但读出来的数据是乱码;
要再格式化一下嘛~
f.Read(str.GetBuffer(f.GetLength()),f.GetLength());
读出来之后再加上
int a,b,c,d;
sscanf(str.GetBuffer(%d %d %d %d),a,b,c,d );
再格式化后CString strRes;
strRes.Format(%d %d %d %d,a,b,c,d);
MessageBox(strRes);
在读入数据的时候是以字符串的形式,不能直接转成int、double。
在读入数据的时候还要考虑字符的小数点,比如1.2 0.9 3.8````另外读入的数据长度是不一定的
刚刚通过CStdioFile把读出来数据时乱码的问题解决了,不知道大家有没有比较好的方法来解决把字符串变成double数组的方法,或者是vector。
要求:1:数据长度不定;
针对第1步,网上查了一个关于读取文件的程序如下:
CFileDialog fileDlg(TRUE);
if(fileDlg.DoModal() == IDOK){CString str;CFile f;
f.Open(fileDlg.GetFileName(),CFile::modeReadWrite);
f.Read(str.GetBuffer(f.GetLength()),f.GetLength());
f.Close();GetDlgItem( IDC_INPUTDATA )-SetWindowText( str);}但读出来的数据是乱码;
要再格式化一下嘛~
f.Read(str.GetBuffer(f.GetLength()),f.GetLength());
读出来之后再加上
int a,b,c,d;
sscanf(str.GetBuffer(%d %d %d %d),a,b,c,d );
再格式化后CString strRes;
strRes.Format(%d %d %d %d,a,b,c,d);
MessageBox(strRes);
在读入数据的时候是以字符串的形式,不能直接转成int、double。
在读入数据的时候还要考虑字符的小数点,比如1.2 0.9 3.8````另外读入的数据长度是不一定的
刚刚通过CStdioFile把读出来数据时乱码的问题解决了,不知道大家有没有比较好的方法来解决把字符串变成double数组的方法,或者是vector。
要求:1:数据长度不定;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询