求高手解答c語言問題,求高手解答,C語言問題

2021-12-16 10:57:33 字數 2053 閱讀 6544

1樓:很浪的碰碰車

當使用者按下某個鍵時,

1.鍵盤會檢測到這個動作,並通過鍵盤控制器把掃描碼(scan code)傳送到計算機;

鍵盤掃描碼跟具體的硬體有關的,不同廠商對同一個鍵的掃描碼有可能不同。

2.計算機接收到掃描碼後,將其交給鍵盤驅動程式;

3.鍵盤驅動程式把這個掃描碼轉換為鍵盤虛擬碼;

虛擬碼與具體硬體無關,不同廠商的鍵盤,同一個鍵的虛擬碼總是相同的。

3.然後,鍵盤驅動程式把該鍵盤操作的掃描碼和虛擬碼以及其它資訊傳遞給作業系統;

4.作業系統將獲得的資訊封裝在一個鍵盤訊息中,並把該鍵盤訊息插入到訊息列隊。

5.通過windows的訊息系統,該鍵盤訊息被送到某個視窗中;

6.視窗所在的應用程式接收到訊息後,可以瞭解到有關鍵盤操作的資訊,然後決定作出一定的響應

37,38,39,40就是ascii碼,也就是虛擬碼。而且方向鍵值是有兩個,第一個是有符號數-32,你第二張圖裡的判斷ch==224,判斷是它的無符號數,跟-32是一樣的。第二個就是它的真實鍵值,你可以用下面的**檢視(c++)

int main()

return 0;

}至於為什麼取出的是72,75,77,80應該是直接取了掃描碼,我用其他程式語言測了下,取出來的只是ascii37,38,39,40。如果想那樣呼叫就重新定義一下吧。

個人理解,僅供參考。

2樓:匿名使用者

可以定義常變數啊,很標準的

const int up = 72, down = 75, left = 77, right = 80;

switch(0xff & c2)

3樓:匿名使用者

這個問題牽涉到鍵盤的掃描碼和windows虛擬鍵碼的概念

對xt鍵盤以及之後的相容鍵盤而言,0x48,0x4b,0x4d,0x50分別是上、左、右、下方向鍵的鍵盤掃描碼(在早期linux核心程式中可以看到)。該值與具體的硬體裝置相關,例如xt機鍵盤與at機鍵盤的差異就很大;

而vk_up,vk_left,vk_right,vk_down則是在windows上層應用程式中使用的虛擬鍵碼,它掩蓋了底層可能由不同硬體帶來的編碼差異,使得上層可以使用統一的鍵盤編碼

另外: 0x48 = 72, 0x4b = 75,0x4d = 77,0x50 = 80

0x25 = 37,0x26 = 38,0x27 = 39,0x28 = 40

這只是16進位制值與10進位制值之間的轉換

4樓:匿名使用者

恩!其實這些數是相同的!

我現在不方便模擬!不過我認為:

你的前倆個**裡的是鍵盤上的上下左右鍵,上面兩幅圖的數值第一幅是16進位制的,第二幅是10進位制的。

而你的下面倆張**是鍵盤上的w,s,a,d!第三幅是10進位制的,第四幅是6進位制。

5樓:仲奇正

0x代表16進位制,也就是說0x48 = 72,0x50 = 80,0x4b = 75,0x4d = 77,;

而vk_up、wk_down等等,是巨集定義,定義即為對應的數字。如果你要用的話,建議你去了解一點win32程式設計的東西,其中的鍵盤訊息有講這些。

6樓:匿名使用者

0x代表16進位制,換算成十進位制之後數字就對上0x25=37,0x48=72

7樓:magic_旭

肯定以winuser.h中定義的為準啊,0x25它是一個十六進位制數,對應的十進位制也就是37,

c語言問題 求高手解答!!

8樓:匿名使用者

sortd函式系採用選擇法排序演算法將a指向的n個數從大到小排列:每次選出一個數和後面的所有數比較,記住最大數,最後放在隊頭……

遺憾的是選擇部分有誤:if(*q>*maxp) maxp=p;

當q指向的數較大時,應該記住q指向的數:if(*q>*maxp) maxp=q;

另外,建議程式分行,有序縮排,養成良好的書寫習慣:

9樓:藍天不是藍色了

你這個for迴圈不用括號?

C語言,問題求高手解答,c語言問題求高手解答

a.abcdefg 笑臉表示解碼錯誤,是windows平臺問題,如果在linux平臺下,輸出就是a c語言問題求高手解答 輸入8 9 不要逗號 輸出8,9 輸入的格式必須要和你程式裡定義的一樣,否則肯定出錯 輸入時應輸入 8 9 而不是 8,9 c語言問題,求高手解答 c語言問題 求高手解答 mud...

c語言問題,求高手幫忙解答,求C語言高手幫忙解答

include include void q1 void void q2 void void q3 void void q4 void void q5 void void q6 void void q7 void void q8 void void q9 void void q10 void voi...

求高手解答,求解答求高手解答

這個問題問的很好。已經幫你解答了,希望採納 你想問什麼問題呢?這個問題問的很好。已經幫你解答了,希望採納。有什麼不明白的問題,可以看看新十萬個為什麼,那裡知識豐富,趣味的,不明白的,在那裡通通都會找到答案的。嗨,我是高手。我來解答你的問題了啦 親親,你有什麼問題呢 高手需要解答什麼呢 求解答 求高手...