如何在BCB的Edit元件顯示16進位格式字串? |
答題得分者是:daldal
|
skybow
一般會員 發表:10 回覆:10 積分:4 註冊:2004-04-30 發送簡訊給我 |
[code cpp] int test=6; int *ptr=&test; Edit1->Text=IntToStr(&ptr); fout<<&ptr< [/code] 請教各位前輩,我想在BCB中顯示指標的記憶體位址, 以上是測試程式中的一小段,編譯上沒有問題~ 可是執行後Edit中顯示的字串卻只有"1"這個數字, 而用fout輸出的txt檔案,也只看到1242532這一串數字, 請問要怎樣設定格式,才能看到類似0x12345678這種格式的記憶體位址呢? 謝謝! 編輯記錄
skybow 重新編輯於 2008-06-17 22:07:07, 註解 無‧
|
daldal
高階會員 發表:6 回覆:102 積分:226 註冊:2007-06-18 發送簡訊給我 |
|
skybow
一般會員 發表:10 回覆:10 積分:4 註冊:2004-04-30 發送簡訊給我 |
感謝! Edit元件的部份已經成功了! fout的部分我也解決了! 我的程式碼如下,跟其他新手分享! [code cpp] fout.open("EDIT.txt"); //開檔案 int test=6; Edit1->Text="0x" IntToHex(int(&test),8); //Edit1輸出16進位格式的記憶體位址 Edit2->Text=IntToStr(int(&test)); //Edit2輸出預設10進位格式的記憶體位址 /*以下為檔案輸出及輸出格式設定 */ fout.setf(ios_base::hex,ios_base::basefield); //設定輸出數字為16進位 fout.setf(ios_base::showbase); //16進位數字的前面加上"0x" fout.setf(ios_base::uppercase); //改大寫,使0x變成0X fout<<&test< fout.unsetf(ios_base::basefield); //清除設定 fout.unsetf(ios_base::showbase); //清除設定 fout.unsetf(ios_base::uppercase); //清除設定 fout<<&test< [/code] 不過還是不太懂,為什麼在Edit元件的部份, 直接使用 Edit1->Text = IntToStr(&test); 的結果會變成"1"?
編輯記錄
skybow 重新編輯於 2008-06-12 22:18:29, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |