看板 C_and_CPP 關於我們 聯絡資訊
這是一個輸入密碼的範例程式 01. #include <stdio.h> 02. #include <stdlib.h> 03. #include <conio.h> 04. int main(void) 05. { 06. char a[80],key; 07. int i=0; 08. while(1) 09. { 10. key=getch(); 11. if(key=='\b') 12. { 13. printf("\b \b"); 14. if(i>0) 15. i--; 16. } 17. else if(key=='\r') 18. { 19. printf("\n"); 20. break; 21. } 22. else 23. { 24. printf("*"); 25. a[i]=key; 26. i++; 27. } 28. } 29. a[i]='\0'; 30. printf("%s\n",a); 31. system("pause"); 32. return 0; 33. } 我想請問一下 程式的第11行~第21行 \b是代表倒退一格 \r是代表歸位 在這個程式中是要幹嘛用的呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.227.68.178
yuanyu90221:字串結束字元嗎? 有點忘了 04/15 18:45
yuanyu90221:XDD 推錯 04/15 18:47
yuanyu90221:應該是用來判斷 特殊字元的密碼吧 04/15 18:49
yuanyu90221:打錯是 是用來判度 getch 所讀入的char 來顯示所打 04/15 18:53
yuanyu90221:的密碼 04/15 18:53
yuanyu90221:\r 是字串結束的字元 \b是backspace的字元 04/15 18:57
yuanyu90221:應該說 按Enter 的字元是'\r' 一直打錯 04/15 19:02
tropical72:Press "Enter" 應是送出 "\r\n", 也有些系統只送 "\n" 04/15 19:16
tropical72:故截掉 \r。\b 為「←」這個鍵,所以把輸入錯的psw清掉. 04/15 19:17