C++ 對Ctrl+Z的解釋


 

只有當Ctrl+Z單獨位於一行的行首時,才表示輸入的終止!(即無論何時,都推薦先回車,再Ctrl+Z,再回車結束輸入)

當Ctrl+Z位於行中、行末時,輸入都不會結束。

(Ctrl+Z表示一個字符,其ASCII碼為26.)

1 int main() 2 { 3     vector<string>words;             // (1)當輸入為: 1 2 3 4 時,程序正常結束,輸出為 4 
4     string a;                        // ^z
5     while(cin >> a) 6         words.push_back(a);          // (2)當輸入為: 1 2 3 4 ^z 5 6時,程序並不會結束,此時回車再ctrl+z后才可以讓程序結束,
7     cout << words.size();            // 但是輸出為5,因為^z被當做字符處理。(只處理^z之前的字符)
8     return 0; 9 }

 

1 int main() 2 { 3     int a; 4     vector<int> v; 5     while(cin >> a)           //此處當Ctrl+Z在行末時也不會出錯,因為此處需要輸入的時int型整數,
6         v.push_back(a);       //但Ctrl+Z是一個字符,即錯誤輸入(類型不匹配),故程序終止
7     cout << v.size(); 8     return 0; 9 }

 

    科普:     

   Ctrl+Z表示一個字符,其ASCII碼為26.

鍵盤上所有的鍵(包括組合鍵)都有自己的掃描碼和ASCII碼,這些掃描碼和ASCII碼是由鍵盤中斷(int 16h)定義的。 windows系統中,單擊 開始→運行,在“打開”框中輸入:cmd /c debug,確定,進入debug調試程序,鍵入輸入指令命令A並回車,然后輸入: mov ah,0 int 16 回車 g104 按CTRL+Z 這時,AH=2ch,AL=1ah。AH的值就是CTRL+Z的掃描碼,AL的值就是CTRL+Z的ASCII碼。1ah是十六進制數,換算成十進制數就是26。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM