编辑框显示问题

tears1607 2010-03-17 11:12:58
我的a[4][2]是个float型数组,
目的是想把float类型转换之后再编辑框中显示

CString str;
for(int i=0;i<m_a;i++){
SetDlgItemText(IDC_EDIT1,"A的位置为:("+str.Format("%10.2f",a[i][0])+","+str.Format("%10.2f",a[i][1])+"\r\n");
}

按理说应该应经把float转换类型了啊,怎么还是显示错误
error C2111: pointer addition requires integral operand
...全文
177 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 tears1607 的回复:]
我的a[4][2]是个float型数组,
目的是想把float类型转换之后再编辑框中显示

CString str;
for(int i=0;i<m_a;i++){
SetDlgItemText(IDC_EDIT1,"A的位置为:("+str.Format("%10.2f",a[i][0])+","+str.Format("%10.2f",a[i][1])+"\r\n");
}

……
[/Quote]
float a[][2] ={{1.0f,1.1f}, {2.0f, 2.1f}, {3.0f, 3.1f}, {4.0f, 4.1f}};

CString strText(_T(""));
CString strTemp(_T(""));
const CString strToken(_T(", "));

for(int i=0; i<sizeof(a)/sizeof(a[0]); i++)
{
for(int j=0; j<sizeof(a[0])/sizeof(a[0][0]); j++)
{
strTemp.Format(_T("%.2f"), a[i][j]);
strText += strTemp + strToken;
}
}
strText.Trim(strToken);

AfxMessageBox(strText);
VC_ZSY 2010-03-17
  • 打赏
  • 举报
回复
吃饭去了··下午在讨论··不过LZ改结贴了·
VC_ZSY 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wizardk 的回复:]

引用 3 楼 vc_zsy 的回复:

他说的不正确··CString可以相加的··你的错误是因为你加的不是str,而是函数format返回的一个void数字··所以会出错··
float a = (float)2.2;
float b = (float)2.3;
CString str;
// for(int i=0;i<m_a;i++){
CString temp_str = ……
[/Quote]
一个字符串 + 一个void肯定不可以;因为str.format()返回为空(void),可能我没弄明白你的意思··不好意思哈··呵呵·
WizardK 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vc_zsy 的回复:]

他说的不正确··CString可以相加的··你的错误是因为你加的不是str,而是函数format返回的一个void数字··所以会出错··
float a = (float)2.2;
float b = (float)2.3;
CString str;
// for(int i=0;i<m_a;i++){
CString temp_str = _T("A的位置为:(");
str.Fo……
[/Quote]

我说CString可以加字符指针,但不能被字符指针加
WizardK 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tears1607 的回复:]

引用 1 楼 wizardk 的回复:
字符串操作不对,CString可以+,但不能被+,你相当于对字符串指针进行了+操作


C/C++ code

str.Format("A的位置为:(%10.2f,%10.2f)\r\n", a[0][0], a[0][1]);
SetDlgItemText(IDC_EDIT1, str);


按你说的改了,可是怎么还是报错呢
Se……
[/Quote]

你这哪里是按照我的方式改的啊,Format方法是没有返回值的
VC_ZSY 2010-03-17
  • 打赏
  • 举报
回复
另外需要将IDC_EDIT1属性multiline选中即可
hzy694358 2010-03-17
  • 打赏
  • 举报
回复
for(int i=0;i<m_a;i++){
CString temp_str = _T("A的位置为:(");
str.Format("%10.2f",a);

把CString temp_str=_T("");放到循环外
里面改为:
temp_str += _T("A的位置为:(");
VC_ZSY 2010-03-17
  • 打赏
  • 举报
回复
float a = (float)2.2;
float b = (float)2.3;
CString str;
CString result;
for(int i=0;i<10;i++){
a += i;
b += i;
CString temp_str = _T("A的位置为:(");
str.Format("%10.2f",a);
temp_str += str;
temp_str += ",";


str.Format("%10.2f",b);
temp_str += str;
temp_str += "\r\n";
result += temp_str;
SetDlgItemText(IDC_EDIT1,result);
}
Vector_fz 2010-03-17
  • 打赏
  • 举报
回复
EDIT默认时,不支持换行属性
需要将MULITLINE属性设为TRUE
tears1607 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vc_zsy 的回复:]
他说的不正确··CString可以相加的··你的错误是因为你加的不是str,而是函数format返回的一个void数字··所以会出错··
float a = (float)2.2;
float b = (float)2.3;
CString str;
// for(int i=0;i<m_a;i++){
CString temp_str = _T("A的位置为:(");
str.For……
[/Quote]
谢谢了,按你说的改对了
但是又出现一个问题就是:我本来是想设置一个循环每次换行然后显示好几行的,但是好像还是显示一行,就是最后那一行,前面的都被覆盖了
VC_ZSY 2010-03-17
  • 打赏
  • 举报
回复
他说的不正确··CString可以相加的··你的错误是因为你加的不是str,而是函数format返回的一个void数字··所以会出错··
float a = (float)2.2;
float b = (float)2.3;
CString str;
// for(int i=0;i<m_a;i++){
CString temp_str = _T("A的位置为:(");
str.Format("%10.2f",a);
temp_str += str;
temp_str += ",";


str.Format("%10.2f",b);
temp_str += str;
temp_str += "\r\n";
SetDlgItemText(IDC_EDIT1,temp_str);
// }
tears1607 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wizardk 的回复:]
字符串操作不对,CString可以+,但不能被+,你相当于对字符串指针进行了+操作


C/C++ code

str.Format("A的位置为:(%10.2f,%10.2f)\r\n", a[0][0], a[0][1]);
SetDlgItemText(IDC_EDIT1, str);
[/Quote]

按你说的改了,可是怎么还是报错呢
SetDlgItemText(IDC_EDIT1,str.Format("A的位置为:(%10.2f,%10.2f)\r\n", a[i][0], a[i][1]));

error C2664: 'SetDlgItemTextA' : cannot convert parameter 2 from 'void' to 'const char *'
WizardK 2010-03-17
  • 打赏
  • 举报
回复
字符串操作不对,CString可以+,但不能被+,你相当于对字符串指针进行了+操作


str.Format("A的位置为:(%10.2f,%10.2f)\r\n", a[0][0], a[0][1]);
SetDlgItemText(IDC_EDIT1, str);
VC_ZSY 2010-03-17
  • 打赏
  • 举报
回复
LZ结贴不给分··BSBSBSBSBSBS你

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧