Day 3 --修改自己程式碼的bug
阿新 • • 發佈:2018-12-11
今天一早上我就繼續寫昨晚遺留的一個題目的程式碼,是用C語言模擬使用者登入介面,且只能輸入三次。我思考了一會兒,就用兩個字元陣列來分別存放使用者名稱和密碼,再用迴圈來判斷輸入次數,並呼叫strcmp()函式來檢測密碼是否輸入正確。過了一會兒,我把程式碼寫好了,編譯連線均沒有報錯,我就很高興地輸入起來。結果輸入完第三次後,螢幕會跳出"Debug Error!"提示框 然後我就很是納悶,為什麼會這樣呢?接著我就在百度上搜索原因,但並沒有找到我想要的解決方案。最後我把錯誤提示搜尋了以下,原來是陣列越界了。我在程式碼裡這樣寫: char id[] = { 0 } ; char psw[] = { 0 } ; 這顯然是不對的,沒有給陣列一個確定的長度,必然會導致系統無法判斷輸入的字串到底有多長而報錯。 我將這個bug修改後,程式就很好地執行起來。 但是我發現還是有點缺陷,第三次輸入後程序也不檢測輸入是否正確就直接退出了。我想了想,還應該在第三次輸入時加上判斷,這樣功能就更完整了。這分別是我測試錯誤輸入和正確輸入後的結果: