引用 | 编辑
zse5500
2009-11-27 01:10 |
楼主
▼ |
||
![]() =========================== 下面的程式码是我打的...(不是上面完成图的程式码) #include <stdio.h> #include <stdlib.h> #include <conio.h> main() { char pass="OPEN THE DOOR !",g; start: printf("输入密码 :"); fflush(stdin); g=getch();g=getch();g=getch();g=getch(); g=getch();g=getch( .. 访客只能看到部份内容,免费 加入会员 ![]()
|
引用 | 编辑
totsi
2009-11-27 09:48 |
1楼
▲ ▼ |
pass[]在程式码里面没用到
100代表开一个大小为100的字元阵列 所以那个值依照你的需求改就好了,不过要注意是[0]开始以及有'\0'结尾,所以长度计算时要注意。 Q:g[]=getch(); 怎么用回圈化简? 复制程式 for ( int i = 0 ; i < sizeof(g) ; i++ ) { g[i] = getch(); } ![]() |
引用 | 编辑
rchockxm
2009-11-30 20:27 |
2楼
▲ ▼ |
||||||||||
图 1. ![]() 稍微试一下 像这样吗? 我只有用最简单的方法... 重复呼叫自己修改一下就行了 ![]() 复制程式 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> int main() { char input[100], password[]="happy new year !"; printf(" 请输入密码:"); int i=0; while((input[i]=getch())!=13&&i<sizeof(input)) { putch('*'); i++; } input[i] = '\0'; i=0; printf("\n\n 您输入的字串是:%s \n\n", input); if (!strcmp(input,password)) printf(" 恭喜过关 !"); else printf(" 密码错误 !"); printf("\n\n 请按任意键继续..."); getch(); }
![]() |
引用 | 编辑
rchockxm
2009-12-01 21:37 |
4楼
▲ ▼ |
连续取得输入的字元,直到按下 "Enter" 键为止。
后面的 i<sizeof(input) 只是判断输入不超过阵列长度。 ![]() |
引用 | 编辑
totsi
2009-12-03 09:14 |
6楼
▲ ▼ |
参考来源:http://www.experts-exchange.com/Programming/Languages/C/Q_21263658.html
ASCII Value of Enter Key is a Carriage Return, typically. That is value 13 (Decimal). Windows often uses Carriage Return - Line Feed, which is ASCII 13 decimal, ASCII 10 Decimal. ![]() |