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 關注
- 119 瀏覽
添加回答
舉報
0/150
提交
取消