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