只有当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 ;
  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 ;
  9. }

科普:

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

  1. 键盘上所有的键(包括组合键)都有自己的扫描码和ASCII码,这些扫描码和ASCII码是由键盘中断(int 16h)定义的。
  2. windows系统中,单击 开始→运行,在“打开”框中输入:cmd /c debug,确定,进入debug调试程序,键入输入指令命令A并回车,然后输入:
  3. mov ah,0
  4. int 16
  5. 回车
  6. g104
  7. CTRL+Z
  8. 这时,AH=2chAL=1ahAH的值就是CTRL+Z的扫描码,AL的值就是CTRL+ZASCII码。1ah十六进制数,换算成十进制数就是26

C++ 对Ctrl+Z的解释的更多相关文章

  1. source vs export AND ctrl d vs ctrl z

    在脚本中export,只在当前shell脚本进程和子进程中有效 source的作用中是将export的变量在当前脚本环境生效, 如果是在父脚本中执行source,在子脚本中执行export, 父脚本退 ...

  2. c++中while(cin>>str)和ctrl z的相关问题探讨

    对于while (cin>>str)和ctrl z的问题,网上有以下解释: -------------------------------------------------------- ...

  3. Linux Ctrl+c与ctrl+z的区别

    提问:CTRL-Z和CTRL-C区别?回答:CTRL-Z和CTRL-C都是中断命令,但是他们的作用却不一样.CTRL-C是强制中断程序的执行,而CTRL-Z的是将任务中断,但是此任务并没有结束,他仍然 ...

  4. linux中终端控制键Ctrl+C,Ctrl+Z,Ctrl+D的使用场合

    1.Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程.2.Ctrl+Z是把当前的程序挂起,暂停执行这个程序 ...

  5. ctrl+c,ctrl+d,ctrl+z在linux中意义

    ctrl+c,ctrl+d,ctrl+z在linux中意义   ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.   ctrl+c是强制中断程序的执行.   ctrl+z的是将任务中断 ...

  6. bg,fg,ctrl+z组合

    使用ctrl + Z 把一个进程挂起 [root@limt ~]# sh Testlsof.sh >111.log ^Z [1]+ Stopped sh Testlsof.sh > 111 ...

  7. linux 后台运行进程 fg bg ctrl+z nohup

    fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh &am ...

  8. ctrl + z fg bg

    [root@bass ~]# jobs [1]+ Stopped vncviewer 192.168.1.17:5904 [root@bass ~]# #ctrl + z [root@bass ~]# ...

  9. fg、bg、jobs、&、ctrl + z

    原文地址:fg.bg.jobs.&.ctrl + z 作者:china-yuan http://blog.chinaunix.net/uid-22433093-id-1774026.html ...

随机推荐

  1. UBUNTU18.4环境下使用更好用的搜索引擎(无奈,只能起这样的标题)

    初步安装 更新软件源 sudo apt-get update 安装pip (一个安装和管理 Python 包的工具) sudo apt-get install python-pip sudo apt- ...

  2. 【Gradle】Gradle环境配置

    Windows环境 下载 作者下载的是gradle-4.1-all.zip,下载地址:http://services.gradle.org/distributions 环境配置 GRADLE_HOME ...

  3. sizeof strlen区别于联系

    http://www.cnblogs.com/carekee/articles/1630789.html

  4. C++11模板友元语法

    第 1 类: 普通类A的 普通类B 友元(一对一友好关系): 无需前置声明class B,当class B第一次出现在friend声明中时,该名字被隐式地认为可见. class A { friend ...

  5. Android中实现延时执行操作的几种方法

    1.使用线程的休眠实现延时操作 new Thread() { @Override public void run() { super.run(); Thread.sleep(3000);//休眠3秒 ...

  6. vscode常用快捷键和插件(持续更新),以及一些常用设置的坑和技巧

    一 常用快捷键 ctrl+shift+p:  打开命令面板,最常用了 ctrl+p: 搜索窗口: 直接输入文件名,跳转到文件 > 可以进入 Ctrl+Shift+P 模式 ? 列出当前可执行的动 ...

  7. Dubbo服务超时

    服务消费者引用服务提供者的服务时可能由于网络原因导致长时间未返回相应,此时大量的线程将会阻塞,引起性能下降等问题.可以通过引入服务超时来解决该问题 服务超时指服务在给定的时间内未返回相应将立即终止该请 ...

  8. 【vim】保存文件没有权限 :w !sudo tee %

    每当你打开一个你没有写入权限的文件(比如系统配置文件)并做了一些修改,Vim 无法通过普通的 ":w" 命令来保存. 你不需要重新以 root 方式打开文件再进行修改,只需要运行: ...

  9. linux系统的休眠与唤醒简介

    转自:http://blog.csdn.net/haomcu/article/details/7398703 系统挂起(Suspend)是电源管理(APM&ACPI)的一个特性,给用户带来了很 ...

  10. mysql系列十、mysql索引结构的实现B+树/B-树原理

    一.MySQL索引原理 1.索引背景 生活中随处可见索引的例子,如火车站的车次表.图书的目录等.它们的原理都是一样的,通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的 ...