我完善了答案,已經(jīng)測試過,可以運行的
成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、禹城網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為禹城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
#include stdio.h
#include stdlib.h
#include conio.h
void main()
{
int i=0,k;
char s,a[6];
for(k=3;k0;k--)
{
printf("\n\n\n\t你還有%d次輸入機會\n",k);
printf("\n\n\n\n\t\t請輸入登錄密碼:\n\t\t\t\t");
while((s=getch())!='\r')
{
if(s=='\b')
{
a[--i]=s;
printf("\b \b");
}
else
{
a[i++]=s;
printf("*");
}
}
if(a[0]=='9'a[1]=='1'a[2]=='0'a[3]=='8'a[4]=='0'a[5]=='5')
{
printf("\n密碼正確!\n");
break;
}
system("cls");
}
if(k==0(a[0]!='9'a[1]!='1'a[2]!='0'a[3]!='8'a[4]!='0'a[5]!='5'))
{
printf("\n\n\n\t\t\t你的登陸失敗,請稍后再試......\n");
system("pause");
}
}
/*樓主程序我已經(jīng)完善了,關(guān)于那個退格,我再說說思路吧,getch();是可以接收退格,ESC鍵的,就是說特殊轉(zhuǎn)義字符,常規(guī)字符都可以接收而且是回顯的,
如果你按了退格,編譯器會當做是一個字符處理,所以要真正實現(xiàn)退格功能實際上是需要空格的幫助,pritnf(\b \b);的意思就是當讀入退格之后,將前一個字符
換成退格鍵(替換你輸入的字符),光標在第一個\b作用下退了一格(注意這里不需要用空格完成退格作用,因為退格占了一個字符位置,其實什么也沒有的,可以說是一個空字符,
通過空格將需要刪除的字符換成空格,因為空格也是一個字符,所以在用一個退格將光標定在空格前面,再輸入字符的時候就將空格覆蓋了,現(xiàn)在實質(zhì)已經(jīng)出來了
其實退格實質(zhì)就是字符的覆蓋而已,還有,完全退格是將printf("請輸入密碼:");也刪掉,這個功能我調(diào)試了一個下也沒有完成,小弟學藝未精,樓主你來補充一下吧*/
k=k0xff?0x00ff:k8;其實就是
if(k0xff) {
k=0x00ff;
}else {
k=k8;
}的簡寫。
其實0xff和0x00ff是一樣的,都表示同一個十六進制的值。
書上這么寫,沒有錯;至于為什么,就不好說了。
可能是讓你多學點知識,也可能是現(xiàn)在很多書其實在編寫時并不是很認真的。畢竟盡信書不如無書!
后面的k8是把0xff的值右移8位,達到計算的目的(具體什么目的要看具體內(nèi)容)
這個程序應(yīng)該滿足你的要求吧。
#include stdio.h
#include conio.h
int main(void)
{
while (1)
{
if (!kbhit())
printf("1");
else
{
char c = getch();
if (c == 'a')
{
putchar('2');
getch();
}
}
}
return 0;
}
我估計你分數(shù)給的在高也沒人回答。來個這樣的代碼太麻煩了。而且百度金幣用處也不大。
不過,我可以寫幾個鼠標函數(shù)給你參考一下。
首先了解一下鼠標的中斷。
_ax=0x01
表示顯示光標
_ax=0x02
停止顯示光標
_ax=0x03
讀取光標位置與案件
_ax=0x04
設(shè)置光標位置
所以啊。根據(jù)這四個中斷,有以下幾個函數(shù)
----------------------------------------------------
void
mouseon(void)//鼠標光標顯示
{
_ax
=
0x01;
geninterrupt(0x33);
}
----------------------------------------------------
void
mouseoff(void)//鼠標光標隱藏
{
_ax
=
0x02;
geninterrupt(0x33);
}
---------------------------------------------------
void
mousesetxy(int
x,int
y)//設(shè)置當前位置
{
_cx
=
x,
_cd
=
y;
_ax
=
0x04;
geninterrupt(0x33);
}
---------------------------------------------------
int
leftpress(void)//鼠標左鍵按下
{
_ax
=
0x33;
geninterrupt(0x33);
return(_bx1);
}
-----------------------------------------------------
鼠標右鍵的應(yīng)該也會了吧。不過要return(_bx2);
-----------------------------------------------------
void
mousegetxy(void)//得到當前位置
{
_ax
=
0x33;
geninterrupt(0x33);
mousex
=
_cx;
mousey
=
_dx;
}
---------------------------------------------------------------
最好要復(fù)制粘貼,打字打得手疼。
scanf函數(shù)
scanf("%d",a); 輸入一個整數(shù)賦值給a;
scanf("%f",a); 輸入一個浮點數(shù)賦值給a;
scanf("%c",a); 輸入一個字符賦值給a;
scanf("%s",%a); 輸入一個字符串賦值給a;