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。

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值