[問題] 新手 請幫忙除錯!(不知哪裡有錯)
開發平台(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://www.ptt.cc/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
推
07/02 20:57, , 1F
07/02 20:57, 1F
→
07/02 20:58, , 2F
07/02 20:58, 2F
→
07/02 20:58, , 3F
07/02 20:58, 3F
推
07/02 21:01, , 4F
07/02 21:01, 4F
→
07/02 21:02, , 5F
07/02 21:02, 5F
→
07/02 21:04, , 6F
07/02 21:04, 6F
→ 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
→
07/02 21:50, , 7F
07/02 21:50, 7F
→
07/02 21:50, , 8F
07/02 21:50, 8F
謝謝樓上!
→
07/02 21:51, , 9F
07/02 21:51, 9F
推
07/02 22:28, , 10F
07/02 22:28, 10F
→
07/02 22:28, , 11F
07/02 22:28, 11F
推
07/02 22:35, , 12F
07/02 22:35, 12F
→
07/02 22:36, , 13F
07/02 22:36, 13F
→
07/02 22:38, , 14F
07/02 22:38, 14F
→
07/03 02:18, , 15F
07/03 02:18, 15F
→
07/03 02:18, , 16F
07/03 02:18, 16F
推
07/03 10:15, , 17F
07/03 10:15, 17F
推
07/03 10:46, , 18F
07/03 10:46, 18F
※ 編輯: 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
→
07/03 14:09, , 19F
07/03 14:09, 19F
→
07/03 14:26, , 20F
07/03 14:26, 20F
推
07/03 16:36, , 21F
07/03 16:36, 21F
推
07/03 16:43, , 22F
07/03 16:43, 22F
→
07/03 16:44, , 23F
07/03 16:44, 23F
→
07/04 16:09, , 24F
07/04 16:09, 24F
推
07/07 12:18, , 25F
07/07 12:18, 25F