C_and_CPP 板


LINE

開發平台(Platform): (Ex: VC++, GCC, Linux, ...)VC++2015 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)NO 問題(Question):我是要設計一個可以打密碼的程式 預設密碼是ABCDe111111 但是我一執行 按完密碼後就完全卡在那邊 也沒有當機的現象 我真的不知道怎麼了 *[m 餵入的資料(Input):ABCDe111111 預期的正確結果(Expected Output):電腦顯示:correct!,程式正常結束 錯誤結果(Wrong Output):如上文講到的,黑黑畫面上的那個底線就一直閃一直閃 完全沒有繼續執行,感覺像是還在getche那段 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdio.h> #include<stdlib.h> #include<conio.h> int main() { char passcode[40]; int a; printf("請輸入密碼:\n"); for (a = 0; passcode[a] != 13; a++) { passcode[a] = _getche();/*getche前面有底線是他教我用的/* if (passcode[a] == 8) { a -= 1; } } char correct[] = { 'A','B','C','D','e','1','1','1','1','1','1',13 }; a = 0; check: if (correct[a] == passcode[a]) { if (passcode[a] == 13) { goto correct; } else { a++; goto check; } } else if (correct[a] != passcode[a]) goto wrong; correct: printf("correct!\n"); goto end; wrong: printf("WRONG!\n"); end: system("PAUSE"); return 0; } 補充說明(Supplement):我之所以不用getch是因為我想清出的知道發生甚麼事 等問題解決了會改回getch*[m --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.68.162
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1467463844.A.388.html ※ 編輯: belaniconaze (1.162.68.162), 07/02/2016 20:51:54 ※ 編輯: belaniconaze (1.162.68.162), 07/02/2016 20:52:28
1F:推 springman: 這是多久以前的例子?getch() 與 getche() 好像是 dos 07/02 20:57
2F:→ springman: 年代使用的方式。還用 goto,雖然 goto 是合法的關鍵字 07/02 20:58
3F:→ springman: 可是儘可能不要使用。 07/02 20:58
4F:推 poolongkong: 是 for 條件句的問題嗎 07/02 21:01
5F:→ poolongkong: 改成 a < 11 呢 07/02 21:02
6F:→ poolongkong: 如果記得沒錯的話 passcode[a] != 13 這樣子的意思是 07/02 21:04
poolongkong: passcode[a] 裡面的值不等於13 對壓,13對應到的是enter鍵,我的意思是如果按了enter就跳離for迴圈 ※ 編輯: belaniconaze (1.162.68.162), 07/02/2016 21:43:26 喔還有,我每次建置的時候他都說組態已過期 ※ 編輯: belaniconaze (1.162.68.162), 07/02/2016 21:48:33
7F:→ ilms49898723: for迴圈的部分,你讀完放到passcode[a],for在判斷 07/02 21:50
8F:→ ilms49898723: 前a會先++,判的不是你剛存的那一個(會是a-1) 07/02 21:50
謝謝樓上!
9F:→ ilms49898723: 補充一下怕誤會,for判斷p...[a],換行在p...[a-1] 07/02 21:51
10F:推 art1: char(13)+char(10) 在vc底下似乎才是按enter會送出的內容 07/02 22:28
11F:→ art1: 所以用來判斷停止的條件永遠達不到,就卡在迴圈裡面了 07/02 22:28
12F:推 art1: check裡面用來比較的程式碼也很怪,你要一個字元一個字元比 07/02 22:35
13F:→ art1: 結果輸入密碼的地方有用for迴圈,check那邊卻沒有,超怪.. 07/02 22:36
14F:→ art1: 喔,看懂了,沒用過這種goto的迴圈用法... 07/02 22:38
15F:→ phishingphi: passcode沒初始化也不知道一開始passcode[0]是甚麼值 07/03 02:18
16F:→ phishingphi: 或許一開始passcode[0]剛好值就是13那不就沒輸入密碼 07/03 02:18
17F:推 Sidney0503: 居然是dos時代的標頭檔XD 07/03 10:15
18F:推 art1: 要用換行字元當結束條件,用'\n'比較好 07/03 10:46
※ 編輯: belaniconaze (1.162.85.191), 07/03/2016 13:07:13 我已經改成這樣了,但還是不知哪裡出錯,一直不行 #include<stdio.h> #include<stdlib.h> #include<conio.h> int main() { char passcode[40]; int a=0; printf("請輸入密碼:\n"); while(passcode[a-1]!='\n') { passcode[a] = _getche(); if (passcode[a] == 8) { a -= 1; } a++; } char correct[] = { 'A','B','C','D','e','1','1','1','1','1','1','\n' }; a = 0; check: if (correct[a] == passcode[a]) { if (passcode[a] == 13) { goto correct; } else { a++; goto check; } } else if (correct[a] != passcode[a]) goto wrong; correct: printf("correct!\n"); goto end; wrong: printf("WRONG!\n"); end: system("PAUSE"); return 0; } 其實就是一些微調而已,我還是不知怎麼了一直無法跳離迴圈 ※ 編輯: belaniconaze (1.162.85.191), 07/03/2016 13:15:55
19F:→ VictorTom: 既然都用VC2015了, 直接用除錯功能單步執行看看如何? 07/03 14:09
20F:→ bibo9901: while 會用到 passcode[-1] 07/03 14:26
21F:推 art1: 先從正確密碼只有兩個字元開始 07/03 16:36
22F:推 art1: 如果只是要把換行字元當成跳出迴圈的條件,其實不必讓正確密 07/03 16:43
23F:→ art1: 碼內有換行字元 07/03 16:44
24F:→ MOONRAKER: 程式有改組態當然過期。微軟的那美克星中文隨便看就好 07/04 16:09
25F:推 frank99977: springman老師好! 07/07 12:18







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP