名 稱
標 題
內 文
附加圖檔[] []
  • 可附加圖檔類型:GIF, JPG, JPEG, PNG, WEBM,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 3072 KB。
  • 當檔案超過寬 250 像素、高 250 像素時會自動縮小尺寸顯示
  • 目前附加圖檔使用量大小: 175965 KB / 500000 KB
  • 回覆時程式碼縮排會被trim消掉,請善用[code][/code]標色或貼到ideone等網站
  • LaTeX記法可以用「$$」或「\( \)」包起來,例如「$\sum_{k=1}^{k=n} k^2 = \frac{n(n+1)(n+2)}{6}$」
  • 投稿時請點擊畫像認證後,再按下 [送出] 按鈕提交。
  • 鬧板、攻擊性發言、煽動性發言請無視(回應者也無視),並使用del或在貓管理部向管理員回報。
  • 新介面尚處於測試階段,如果有任何問題可以向管理員或於程設交流版反映。

題名一覽
13323: 伺服器解碼設定疑問 (2)13145: java (25)
13320: 無題 (2)13133: C++ (33)
13311: 無題 (4)13129: 無題 (3)
13242: JDBC (5)13126: 無題 (1)
13232: APPLE開發者帳號的稅務設定 (6)13122: 無題 (1)
13229: C# Crystal Reports (4)13117: 無題 (5)
13204: 競技程式綜合 (78)13109: 無題 (5)
13199: 無題 (4)13102: 無題 (8)
13198: komica API (12)13089: 無題 (10)
13152: 無題 (4)13067: 建議的初始化方法? (3)
檔名:1556028791636.jpg-(11 KB, 259x194)
11 KB
伺服器解碼設定疑問無名19/04/23(二)22:13:11 ID:h8ZBu5mENo.13323del[回應]
關於在tomcat設定檔裡面的useBodyEncodingForURI
所謂的body是指request的哪裡啊?
無名19/04/24(三)03:06:53 ID:LZ07kGMQNo.13324del
檔名:1556046413142.jpg-(37 KB, 400x237)
37 KB
content
無名19/04/24(三)22:04:01 ID:c3P1Q8d.No.13325del
我原po
那想問一下 透過get方法傳遞進伺服器的參數是不是經過2次編碼
一次UTF-8 一次ISO-8859-1?
那伺服器這邊解碼的順序應該是要先用ISO-8859-1解碼
得到UTF-8編碼之後取值 然後回傳通知客戶端瀏覽器用UTF-8解

那為何在伺服器xml檔中設定useBodyEncodingForURI="true"
搭配action檔案中設置request.setCharacterEncode("UTF-8")
就能對中文字元進行正確解碼? 沒有先對ISO-8859-1解碼的程序
啊?

無題無名19/04/21(日)17:48:48 ID:d6MTJmXgNo.13320del[回應]
請問Javascript的問題

有什麼辦法可以抓取按鈕本身的值嗎?

例如按鈕教做 請點選我

有什麼指令可以抓到這個"請點選我"的值嗎?
無名19/04/21(日)19:47:11 ID:RzgnM/zUNo.13321del
<button onclick="handleClick(this)">test</button>

<script>
function handleClick(target) {
console.log(target.innerText);
}
</script>
無名19/04/21(日)21:25:30 ID:d6MTJmXgNo.13322del
感謝島民,讚嘆島民

檔名:1555728665830.jpg-(336 KB, 1925x1041)
336 KB
無題程式菜鳥19/04/20(六)10:51:05 ID:WfrPZ1AMNo.13311del[回應]
遊戲程式,引擊是ue4

小弟請教一下,前幾天發生當機
之後就發生這兩個錯誤訊息
但程式執行卻又沒什麼問題
可以請教一下這是什麼問題嗎
無名19/04/20(六)15:31:40 ID:C8t0XM6YNo.13312del
shoot_Instant.cpp找不到shoot_Instant.h讓他include
其他問題都是這個引發的,這個解決就會跟著解決

應該是某個設定跑掉了才導致找不到
找找看有沒有相關的設定能調吧
程式菜鳥19/04/20(六)22:12:50 ID:h8Xj6CSMNo.13316del
小弟以經想不出啥辦法了
UE4 和 vc++
都重灌還是一樣
無名19/04/20(六)22:15:01 ID:3dpAIVYsNo.13317del
無名19/04/20(六)23:19:37 ID:h8Xj6CSMNo.13319del
小弟照著上面都試了一次
網路上的教學也試了一次
雖然不知作麽回事,最後還是成功了
測試一下,目前編譯還沒問題

檔名:1554536038977.jpg-(47 KB, 1280x720)
47 KB
競技程式綜合無名19/04/06(六)15:33:58 ID:zVucc1IENo.13204del[回應]
好像從來沒看過有人開類似串就負責拋磚引玉一下
各類演算法、程式競賽甚至其他比賽(CTF之類)都歡迎

目前的大比賽(codejam):
https://codingcompetitions.withgoogle.com/codejam
qualification round 到台灣時間 4/6 10 點截止

其他演算法比賽日曆:
https://competitiveprogramming.info/calendar
有回應 73 篇被省略。要閱讀所有回應請按下回應連結。
無名19/04/19(五)20:47:59 ID:qlG7jHWMNo.13310del
>>13309
卡在2300~2400升不上去
atcoder和codeforces要練的地方有點不太一樣

atcoder的題目非~常數學
思考過程很長 但寫出來的code通常很短
要練這種題目我覺得最好的方法就是多寫atcoder...
看解答的時候可以多想想為什麼這樣做是對的 盲點在哪
還有可以多練習證明正確性和複雜度
這對以後看到ad-hoc題的思考過程會有幫助 思考速度會變快一點
最好不要看到解答什麼都不想就寫成code 因為以後遇到變形的題目還是想不出來

另一方面codeforces的題目就經典演算法比較多
除了上面的那種ad-hoc題以外 如果目標是要寫出div2的後面兩三題
可以把一些經典的技巧看一看 像矩陣的DP轉移啦, 圖論啦, 線段樹的應用...
跟練ICPC的方法比較像
無名19/04/20(六)15:59:19 ID:D4bQE.OMNo.13313del
20:00~21:40 AtCoder
24:00~26:00 TopCoder
26:05~28:35 Codeforces
31:00~34:00 Google kickstart
34:30~36:00 LeetCode

看了一下今天晚上超多比賽
有勇者可以全部參加嗎
無名19/04/20(六)21:58:08 ID:3dpAIVYsNo.13314del
atcoder題目難到哭出來了...
還有比到一半突然server沒辦法更新 慘
無名19/04/20(六)22:11:49 ID:D4bQE.OMNo.13315del
>>13314
官方說如果會lag的話用新版介面
https://twitter.com/chokudai/status/1119598315870441472
無名19/04/20(六)22:20:22 ID:3dpAIVYsNo.13318del
>>13315
感謝 下一次試試看
只能在舊版註冊這個規定真的有點爛

檔名:1554437009437.png-(107 KB, 400x480)
107 KB
komica API無名19/04/05(五)12:03:29 ID:15jOaepkNo.13198del[回應]
>action=threads&limit=30
這一句的limit在「action=threads」的時候沒有任何限制住抓取範圍的功能
呼叫的時候會把所有頁數的全部文章一筆筆抓出來
這樣對server很傷 管管救我
有回應 7 篇被省略。要閱讀所有回應請按下回應連結。
無名19/04/08(一)03:07:54 ID:n2QYQKHINo.13227del
檔名:1554664074808.png-(141 KB, 594x530)
141 KB
>>13224
>>13226
管管不會程式,
修改與否要看當事人心情
admin2◆8uebpxjVQs19/04/11(四)19:02:19 ID:vBaFWJLoNo.13241del
聽資工島民說改好了,你再看看?
無名19/04/13(六)21:18:36 ID:BrrXQImINo.13248del
檔名:1555161516212.webm-(3341 KB, 1280x720)
3341 KB
>>13241
感謝 這裡是原po
請問這些API是不是只能套用在某些版面?
有大部分的版面好像沒有該系列API、只會回傳404的樣子
admin2◆8uebpxjVQs19/04/14(日)08:58:02 ID:itoPMxgkNo.13249del
>>13248
哪個版面?
無名19/04/16(二)16:03:53 ID:z/0MJLzoNo.13287del
檔名:1555401833634.png-(2960 KB, 1125x2436)
2960 KB
>>13249
這裏是原po
像是捏他版 新番實況版 三次實況版 萌版 天文版 Apple版 PAD版這幾個會回傳404
我只是隨便試試了上面這幾個 還有更多版面不能套用
但其他板像惡搞 四格 綜合這種就沒問題
再麻煩你了

檔名:1554997698316.jpg-(104 KB, 600x600)
104 KB
JDBC無名19/04/11(四)23:48:18 ID:dE2FBLXYNo.13242del[回應]
Connection connection = DriverManager.getConnection(Url , User , Password);
PreparedStatement ps =connection.prepareStatement(SQL指令字串);
ps.setInt(1 , IslanderNo);
ResultSet rs = ps.executeQuery();

請問島島,既然connection.prepareStatement送出給資料庫的是等待補完的SQL指令,這時候資料庫應該還沒回傳結果啊,那ps這個物件此時裡面存的東西是什麼?
還是我對運作流程理解錯誤?
無名19/04/12(五)01:33:16 ID:cjXxNmwANo.13243del
檔名:1555003996224.png-(64 KB, 400x300)
64 KB
>>13242
愛與希望,還有幫你連結資料庫並處理SQL要求的小松鼠!!
你以為物件裡面是包甚麼的,當然是滿滿見不得人的東西啊!!

htps://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html
>setInt(int parameterIndex, int x)
>Sets the designated parameter to the given Java int value.
>Sets the designated parameter
>parameter
無名19/04/12(五)01:39:16 ID:cjXxNmwANo.13244del
檔名:1555004356810.jpg-(123 KB, 640x1136)
123 KB
>executeQuery()

>Executes the SQL query in this >PreparedStatement object and returns the >ResultSet object generated by the query.

>Executes the SQL
>Executes the SQL
>Executes the SQL
>Executes the SQL
>Executes the SQL

https://translate.google.com/#view=home&op=translate&sl=en&tl=zh-TW&text=Executes%20the%20SQL
無名19/04/12(五)10:05:14 ID:cG4LNlMcNo.13245del
>>13243
我原Po 抱歉沒說清楚
我的意思是 如果先不看後兩行 當程式執行到第2行的時候
connection.prepareStatement送出部分SQL指令先給資料庫
編譯,這時資料庫有回傳任何資料嗎? 不然ps到底是要存什麼?
無名19/04/12(五)12:38:36 ID:DOYiCEgQNo.13246del
我原PO 我好像搞懂了
ps是儲存資料庫傳回的經過預編譯的SQL指令
無名19/04/13(六)16:20:39 ID:BFOuPiowNo.13247del
>>13245
你要學的是prepare單字的意思

檔名:1554787312619.jpg-(11 KB, 368x64)
11 KB
C# Crystal Reports無名19/04/09(二)13:21:52 ID:cvTo0iYoNo.13229del[回應]
島民救我
我在C#的Crystal Reports裡面要塞一個文字欄位跟一個圖片的QRCODE
我把這兩個塞進dataset裡面可是只有文字欄位有正常出來
QR扣的圖片卻是如圖這樣
請問我還少了什麼動作
無名19/04/09(二)16:48:17 ID:oLcMGUe6No.13230del
你連程式都不附誰知道你是什麼問題
無名19/04/09(二)21:12:44 ID:Vyosf6pANo.13231del
檔名:1554815564006.png-(95 KB, 400x295)
95 KB
珍惜生命,遠離Crystal Reports

試試看RDLC如何?
無名19/04/11(四)00:11:53 ID:7SPN8Q82No.13239del
圖片要用二進位丟進去吧
無名19/04/11(四)09:51:34 ID:WAtjHSZUNo.13240del
>>13231
不能同意更多

檔名:1554877371698.png-(8 KB, 801x284)
8 KB
APPLE開發者帳號的稅務設定無名19/04/10(三)14:22:51 ID:WsTDp1HwNo.13232del[回應]
被老闆要求處理蘋果APP要上內購的東西,要弄稅務設定
然後按下填寫台灣稅務表格的時候跳出左邊這個東西


想問台灣稅務ID是什麼? 公司的統一編號嗎? 還是稅籍編號?

直接去APPLE支援問他們只會跳針循環...
有回應 1 篇被省略。要閱讀所有回應請按下回應連結。
無名19/04/10(三)14:50:39 ID:WsTDp1HwNo.13234del
>>13233
不,這個上面沒有台灣稅務的部分(而且這填寫的格式也已經是舊的東西了)
無名19/04/10(三)18:59:05 ID:RovKNrE.No.13235del
公司統編沒錯唷
無名19/04/10(三)20:15:28 ID:/Ejru/f2No.13236del
>>13235
感謝
順帶一問美國稅務表格上面的 外國TIN 也是填統編嗎?
無名19/04/10(三)20:31:33 ID:RovKNrE.No.13237del
>>13236
9b. Foreign TIN ?
我沒有填欸
錢有進來就是了
無名19/04/10(三)20:36:26 ID:/Ejru/f2No.13238del
>>13237
恩....那就放著好了...感謝

檔名:1554450541710.jpg-(76 KB, 600x545)
76 KB
無題無名19/04/05(五)15:49:01 ID:bvUqH8bsNo.13199del[回應]
突然想到一個多執行緒的問題
通常不同執行緒要讀寫同一份資料時會使用讀寫鎖去確保資料正確性
即使只是一個32bit整數也要鎖
以免讀到正在覆寫修改中的數據

但是boolean呢?
雖然體積有8bit
但實際上只有1bit是真正重要的
1個bit就只會有兩種值
那是不是對boolean變數就不用鎖了?
無名19/04/05(五)18:08:08 ID:6lB11ULUNo.13200del
整數要鎖不是因為bit會錯亂
是一行程式碼會被切成很多指令
而不同執行緒的這些指令可能是交錯的

例如i++實際上會被轉譯成類似這樣的邏輯
int reg=i;
reg++;
i=reg;

reg在不同執行緒中是分開存在的
因為硬體原理的關係,i不能直接++,只有reg才可以
而當兩條執行緒同時執行上述程式,實際順序可能是:
int reg0=i;
int reg1=i;
reg0++;
i=reg0;
reg1++;
i=reg1;

結果會變成i只++了一次

這樣的現象在布林裡面也會發生
所以布林不代表就不用鎖
實際上要不要鎖還是得看你做了什麼操作
你不會判斷那就全鎖吧

一個整數的32個bit在硬體處理時應該都是綁死一起走的,不會跟別的執行緒混在一起
無名19/04/05(五)19:05:17 ID:bvUqH8bsNo.13201del
>>13200
但是boolean單純賦值應該只有一個指令吧?
沒有計算
單純用等號塞值進去

>>你不會判斷那就全鎖吧
要鎖的話是不是這樣最便宜啊?
std::atomic<bool> reg;
無名19/04/05(五)19:27:45 ID:6lB11ULUNo.13202del
>>13201
單純的賦值不會被拆開,int也不會
但還是有其他操作可能會
例如boolean=!boolean;
無名19/04/06(六)12:05:08 ID:kFgmBgcgNo.13203del
>>13199
總覺得你知道為什麼有data race
但第二段概念又很奇怪

會不會錯亂看的也只是底層指令怎麼運作 大於一個就有出錯機會
文章概念看起來很像你以為寫32bit是從第一個bit寫到最後一個bit,中間被讀寫才造成錯亂
而布林只會改一個bit(一次動作)所以絕對正確
實際上不是這樣 硬體運算不是以bit為單位在跑

檔名:1554131367044.jpg-(20 KB, 600x365)
20 KB
java無名19/04/01(一)23:09:27 ID:.fnEETYkNo.13145del[回應]
假設我建了一個Class A extends Thread
在Class A裡面Override了 run()

然後在一個main()裡面
A a1=new A();
A a2=new A();
a1.start();
a2.start();
不太懂多執行緒的運作原理 上面的例子是如何運作的?
意思是這個main方法的執行緒跟OS要了2條新的執行緒來同時
執行a1的run()跟a2的run()嗎?
那main方法要完這2條執行緒就結束,剩下a1跟a2的2條執行緒在跑嗎?

另外為什麼如果不用start() 而是在main()裡面執行a1.run()跟a2.run()還是單執行緒? start()內部不就自動呼叫run()
到底差別在哪啊 我被搞得好亂啊
有回應 20 篇被省略。要閱讀所有回應請按下回應連結。
無名19/04/03(三)01:01:19 ID:bcYnr2VsNo.13193del
>>13187
高階語言就是這樣
「我跟你說這行什麼意思,你乖乖記得就好
 不要去管他底層是怎麼執行的,那個你玩不起」

如果你對底層實際原理很有興趣
建議你去學C
不是C++,是正面跟pointer硬幹的純C
既難學又難用、寫不出什麼好看的程式
但如果堅持下去,十年功成之後得到的東西是其他管道取代不來的
無名19/04/03(三)01:03:07 ID:oRWeYXXcNo.13194del
>>13192
沒辦法
無名19/04/03(三)01:06:23 ID:oRWeYXXcNo.13195del
>>13193
先等我Java學到能混口飯吃,我再考慮去補一些底層的
軟硬知識
無名19/04/03(三)01:07:30 ID:BZUs0hXkNo.13196del
>>13194
簡單來說,這段程式的意思就是:
我想要作改良步槍,但我不要直接用原本的步槍改。
所以我在原本的步槍裡面塞進我的改良步槍,按下原本的步槍的板機時用裝置連動到裡面的改良步槍,改良步槍子彈穿過槍管從原本的步槍的槍管射出
無名19/04/03(三)01:09:43 ID:oRWeYXXcNo.13197del
>>13191
是沒有必要 因為這範例是拿來觀察Join()的運作
只是寫這樣搞得我連Join都很難看懂

檔名:1554042902239.png-(746 KB, 600x800)
746 KB
C++無名19/03/31(日)22:35:02 ID:LoCw3BWYNo.13133del[回應]
class Player
{
public:
//friend class StateMachine;

void update();
void draw();

void setStateMachine(StateMachine* stateMachine);

//int getPosX();
//void setPosX(int posX);

private:
StateMachine* stateMachine_;
int posX_, posY_;
int velX_, velY_;
};

class StateMachine
{
public:
StateMachine(Player* player);
private:
Player* player_;
...
};

class IdleState : public ActiveStateMachine
{...};

class WalkState : public ActiveStateMachine
{...};


想要在角色上安置一個狀態機,update()會呼叫stateMachine_
角色的position與velocity修改都交給stateMachine_處理

寫一寫發現到這樣做,狀態機無法去更改class Player的私有值
friend class也無法應用在多型的狀況
如果為了要讀寫,多了一堆set與get的函式也覺得怪怪的
因為跟本不想讓外界去修改

請教大家如何解決這問題
還是狀態機根本不是這樣用的

//
順帶延伸一問
有些教學還會寫說少用繼承(is a)多用聚合(has a)
其實上面想講的也是,我聚合的元件想更改主類別的私有變數就不知道怎麼處理了
有回應 28 篇被省略。要閱讀所有回應請按下回應連結。
無名19/04/02(二)23:55:50 ID:wvNn5Cb6No.13176del
檔名:1554220550215.png-(66 KB, 420x247)
66 KB
>>13172
你可以試著把你switch裡面的邏輯抽出介面與實作後看看成品
無名19/04/03(三)00:06:38 ID:BZUs0hXkNo.13179del
>>13176
沒問題!
//TODO: Use OOP replace switch! 2019/04/03
switch(state) {
case State::Idle: {
std::cout << "\tIdle...";
state = State::Walk;
break;}
case State::Walk: {
if(step < 10) {
std::cout << "\tWalk Step " << step++;
state = State::Walk;
} else {
std::cout << "\tOk!";
state = State::Stop;
}
break;}
case State::Stop: {
run = false;
state = State::Stop;
break;}
}
無名19/04/03(三)00:09:03 ID:Rku4lbOcNo.13180del
檔名:1554221343162.png-(92 KB, 900x700)
92 KB
>>13179
說謊不打草稿阿!!!!下次檔案異動就是2029了吧!?
無名19/04/03(三)00:14:02 ID:bcYnr2VsNo.13181del
>>13175
>>Monster、NPC、Player都繼承Object,差別在可不可以被控制
這個就是封裝、多型的用處

試想
如果Monster沒有MP條的概念
而有某個State會持續扣MP
這個StateMachine如何兼顧Player與Monster的處理?

如果你讓他直接player_->mp-=10;
那你可能要為Monster重寫一份不扣mp的,而且中狀態的時候還要判斷Monster要改中別的狀態
或是每次扣mp時都多一個if判斷當事人是不是Monster
或是你要在Monster裡面塞一個完全用不到的隱型mp讓他扣

但如果你把Object的私有成員都封裝化,答案就會變得非常簡單:
讓Monster擁有一份自己的reduceMP,裡面是空的什麼都不做,只有Player::reduceMP才會真的扣MP
StateMachine只管呼叫player->reduceMP(10)就好
至於對方到底會不會真的扣MP,甚至對方扣了MP後會不會觸發什麼別的事件 (MP盾失效)
通通都不用讓StateMachine來煩惱
無名19/04/03(三)00:23:42 ID:Rku4lbOcNo.13183del
檔名:1554222222788.png-(139 KB, 800x473)
139 KB
>>13181
你應該是少提兩點
1.Object建議要改名
2.reduceMP記得寫一個宣告在"Object"

檔名:1554198157961.gif-(2045 KB, 308x307)
2045 KB
無題無名19/04/02(二)17:42:37 ID:dLpXYWhcNo.13152del[回應]
有什麼文字編輯器可以開個側邊欄顯示資料夾下的檔案?
目前用過Geany的這個這個功能就戒不掉了
清楚資料夾結構就能很快的找到文件
Eclipse有類似效果
但是非IDE也可以這麼做的好像只有Geany
vim好像也可以,不過那東西對我而言太硬派了
無名19/04/02(二)18:12:14 ID:94Hn55KQNo.13153del
Notepad++不敗神話
https://github.com/funap/npp-explorer-plugin

粗乃丸探頭.jpg
無名19/04/02(二)19:43:42 ID:dLpXYWhcNo.13154del
>>13153
如果不是因為Notepad++只有Windows版的話
我應該會從學生時代一直用到現在
無名19/04/02(二)19:53:42 ID:wvNn5Cb6No.13155del
檔名:1554206022233.png-(24 KB, 900x600)
24 KB
無名19/04/02(二)20:53:53 ID:dLpXYWhcNo.13158del
檔名:1554209633584.png-(53 KB, 150x587)
53 KB
Geany還有個特色是tab可以排直的(如附圖)
這麼實用的功能卻很少見
印象中sublime還是madedit好像有
文字編輯器這種東西還真是合胃口比較重要
今天裝了vscode也是滿頭問號
outline有明顯bug就算了
開個資料夾還生產*.bin放資料夾裡頭(雖然git可以無視掉)
用沒多久就砍掉了

檔名:1553882320183.jpg-(17 KB, 496x280)
17 KB
無題無名19/03/30(六)01:58:40 ID:x9oVh5SENo.13129del[回應]
java I/O疑問
File outputfile=new File("E:\\number.txt");      
FileOutputStream fos=newFileOutputStream(outputfile,false);

int randomnum=0;
for(int i=0;i<=5;i++) {
randomnum=(int)(Math.random()*1000)+1;
fos.write(randomnum);
}
fos.close();

為什麼印出來的txt檔內容會是亂碼?
是MS-950跟UTF-8的問題嗎?
無名19/03/30(六)12:02:34 ID:lm0ha/CkNo.13130del
跟編碼無關,因為你這目前只有用到ASCII的字元
問題在於 fos.write(randomnum);
這邊的 write 並非是寫入文字,而是寫入字元的byte
換句話說他把你的 randomnum 當作 byte 來處理了

改成下面的寫法可以直接解決掉這個問題
fos.write(Integer.toString(randomnum).getBytes());
無名19/03/30(六)14:24:42 ID:dEK1/4AsNo.13131del
>>13130
感謝
另外想問
如果fos的append改成false 為什麼不會是下一個數字覆蓋前一個
數字而是繼續在同一行往後寫?
是因為迴圈中fos一直開著的關係嗎?
無名19/03/30(六)15:44:45 ID:tlKvFCzQNo.13132del
>>13131
fos向來都是繼續往後寫
覆蓋前一個這種功能根本沒有人會用到吧...
你要覆蓋的話蓋到變數上面最後再一次輸出不就好了

append指的是
如果那個指定的檔名本來就存在
如果append==false,會把本來的檔案清空、從頭開始寫
如果append==true,會從本來的檔案的尾端接著繼續寫

你可以連續執行這個程式兩三次
然後把append開了再試試看有什麼不一樣

檔名:1553254108412.jpg-(81 KB, 686x960)
81 KB
無題無名19/03/22(五)19:28:28 ID:t5rKxn2kNo.13117del[回應]
我又來問個基本的C++問題了
當你們要highlight一行程式碼時會怎麼做?
編譯期的報錯會由編譯器跟你講錯哪裡
但是執行期的錯誤呢?

這需求類似assert的行為
但是我不要它直接中斷程式
我希望是單純告知我在哪裡就好

我目前是這樣寫
#define ERROR_MESSAGE_HERE __FILE__,__LINE__

inline void highlight(const char *name,int number)
{std::cout<<"File: "<<name<<"_"<<" Line "<<number<<std::endl;}

哪裡有問題就安插個highlight(ERROR_MESSAGE_HERE);
直覺上我應該不需要這樣自己造輪子
這功能明明很實用啊
標準庫怎麼沒有?
無名19/03/22(五)19:56:51 ID:t5rKxn2kNo.13119del
https://stackoverflow.com/questions/37473/how-can-i-assert-without-using-abort
這篇下面的回覆也是各種DIY
滿滿的macro臭味
無名19/03/23(六)00:07:31 ID:A71kzypcNo.13120del
檔名:1553270851645.png-(411 KB, 900x900)
411 KB
原來C++沒有StackTrace嗎?也太慘了吧?
無名19/03/24(日)23:26:35 ID:YHrB7m0sNo.13123del
>>13120
標準庫沒有...你真的要的話可以用 boost::stacktrace 或者
Linux:
int backtrace(void **buffer, int size);

Windows:
USHORT WINAPI CaptureStackBackTrace(
_In_ ULONG FramesToSkip,
_In_ ULONG FramesToCapture,
_Out_ PVOID *BackTrace,
_Out_opt_ PULONG BackTraceHash
);
無名19/03/25(一)11:40:37 ID:yarQ8mUoNo.13125del
>>13123
這東西還真是微妙啊
我大多是下中斷點來追stack
不怎麼需要將它們印出來
但是如果遇到那種需要測試一段時間才能出現的bug
boost::stacktrace好像又變的好用了
無名19/03/25(一)19:42:27 ID:GxEQAKHYNo.13128del
檔名:1553514147953.png-(92 KB, 467x468)
92 KB
>>13125
俗話常說(好吧,新手應該無法體會)

【看的見的錯誤(紅字),都不算是錯誤,只能算是TODO】

檔名:1553505319350.jpg-(359 KB, 1000x669)
359 KB
無題無名19/03/25(一)17:15:19 ID:yarQ8mUoNo.13126del[回應]
C++要抓效率瓶頸時有哪些慣用手段啊?
這本來應該是必備技能
不過我一直都沒去學
工作上寫到沒bug就謝天謝地了
根本沒心力去講究這個

我查到工具裡面看的比較順眼的只有GNU profiler
用法夠簡單
GCC內部支援
無名19/03/25(一)18:25:51 ID:yarQ8mUoNo.13127del
頑皮狗的主工程師推薦的是IBM出的PurifyPlus
QT官網介紹的又是另外一票了
https://wiki.qt.io/Profiling_and_Memory_Checking_Tools
不知道要先跳哪個坑


【刪除文章】[]
刪除用密碼:
第一頁[0] [] [2] [3] [4] [5] [6] [7] [8] [...][22]