|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
|
2005-08-02, 12:38 PM | #1 |
註冊會員
|
如何將輸入的數字改為顯示***號
如題,小弟用C寫一個簡單的小程式如下,但不知如何將scanf輸入的部份改為星號顯示在螢幕上
main() { int i=0,pass; for ( ; ; ) { printf ("Please Input Passwd: "); scanf("%d", &pass); if (pass == 1111) break; else printf ("Passwd Error\n"); } } |
送花文章: 1,
|
2005-08-02, 02:50 PM | #3 (permalink) |
管理版主
|
給您參考 (還是比較喜歡用 basic ^^)
#include <stdio.h> #include <conio.h> void main() { unsigned int c1, c2; c2=0; do { while (!kbhit()); c1 = getch(); if(c1>=48 && c1<=57){ c1=c1-48; c2=c2*10+c1; printf("*"); } } while(c1!=13); printf("\nPass word is %d\n",c2); system("PAUSE"); } |
送花文章: 2011,
|
2005-08-04, 03:11 PM | #4 (permalink) | |
註冊會員
|
引用:
-21092......不知是哪邊ㄉ問題 |
|
送花文章: 1,
|
2005-08-04, 03:53 PM | #8 (permalink) |
管理版主
|
請將 void main
改成 main (也就是去掉 void) 再編譯一次 以下是.c原始檔及.exe http://www.qfile.de/dl/137403/TestAPP.rar.html (此空間需在網頁下下載,不適用flashget等工具下載) 有些編譯器只要有一點錯誤就不能成exe使得使用者執行exe檔時其實是舊的 exe導致錯誤 剛剛執行 .exe 時發現的問題(TestAPP.rar 已更正) 密碼的最大值是 unsigned int = 正整數(4Byte) = 0 ~ 4,294,967,295 實際上還要看 使用的C編譯器及作業系統 (個人用Dev-C++編譯就不能到這麼高 1234567890 還可以,到底極限在哪就請您自己研究了) http://yes.nctu.edu.tw/VC/Ref/BasicDataType.htm 如果還不行 可能是 unsigned int 與 getch() 配合的問題 (因為 getch() 的輸出值是 int) 所以可以試試在 c1 = getch(); 前加個 c1 = 0; 來清空 c1 |
送花文章: 2011,
|
2005-08-04, 04:12 PM | #9 (permalink) | |
註冊會員
|
引用:
|
|
送花文章: 1,
|