long OutStack() //////////输出栈{int i;char e_num[100];char temp[100]; //定义字符型变量储存输出的八进制数long result;if(p.top==0)return 0;else{ for(i=p.top;i>0;i--) {e_num[i]=p.elem[i]+0x30; //将出栈的每个数字加0x30(0),转换成字符型strcat(temp,&e_num[i]); //将出栈的每个数字进行拼接,赋值给temp}}result=atol(temp);return (result);}下面是对这个函数的调用char result=(char)OutStack();HWND hEdit2=GetDlgItem(hwndDlg,IDC_EDIT2);SetWindowText(hEdit2,&result);
2 回答
芜湖不芜
TA贡献1796条经验 获得超7个赞
strcat(temp,&e_num[i]);
strcat 是对两个字符串进行拼接。
字符串以 '\0'结尾。
temp 一开始就没有赋初值,所以里面可能没有 '\0' 字符串没有尾,函数会顺着一直找下去,找到'\0' 做它的结尾处地址。
&e_num[i]这样也不行,e_num[i]这也只是个字符,它后面一个地址里e_num[i+1]并不是'\0',所以它也一样没有结尾。
慕斯王
TA贡献1864条经验 获得超2个赞
SetWindowText(hEdit2,&result);
这个不能直接给一个整数地址的吧,你把需要的字符串,通过参数代出来,然后直接调用此函数显示就可以了。
- 2 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消