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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南