博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 对Ctrl+Z的解释
阅读量:6820 次
发布时间:2019-06-26

本文共 1105 字,大约阅读时间需要 3 分钟。

 

只有当Ctrl+Z单独位于一行的行首时,才表示输入的终止!(即无论何时,都推荐先回车,再Ctrl+Z,再回车结束输入)

当Ctrl+Z位于行中、行末时,输入都不会结束。

(Ctrl+Z表示一个字符,其ASCII码为26.)

1 int main()2 {3     vector
words; // (1)当输入为: 1 2 3 4 时,程序正常结束,输出为 4 4 string a; // ^z5 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
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,0int 16回车g104按CTRL+Z这时,AH=2ch,AL=1ah。AH的值就是CTRL+Z的扫描码,AL的值就是CTRL+Z的ASCII码。1ah是,换算成就是26。

转载于:https://www.cnblogs.com/FengZeng666/p/9272979.html

你可能感兴趣的文章