C++的流结束标志Ctrl+Z

如网址:http://topic.csdn.net/u/20070731/18/550bc49a-9e1c-4797-9748-3d4a11a45bdf.html所提出的... 如网址:http://topic.csdn.net/u/20070731/18/550bc49a-9e1c-4797-9748-3d4a11a45bdf.html
所提出的问题,为什么ctrl+z前面如果有数据是不行的. ctrl+z要独立出来才能结束while循环.请熟悉C++原理的人具体告诉在下。在下不胜感激。
为什么我按回车后再按ctrl Z再回车后,不是跳出循环直接运行到程序结束,而是又起一行后还能输入,而且貌似一旦输入后,以前的Ctrl Z就不起作用了。另外ctrl+z是所谓的截断流吗?我曾经把流比作纸带,ctrl+Z认为是剪断纸带,但这里行不通,请问如何理解流?(流表示字符随着时间顺序生成或消耗。——C++ Primer)
展开
 我来答
YL_Ty
2009-09-06 · TA获得超过121个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:0
展开全部
ctrl+z,相当于EOF,一个标志,在vc++6.0中,while(scanf("%s",s)!=EOF)就可以用ctrl+z结束这个while循环,而while(cin>>s)比较智能化,如果你看下cin的原型也许有帮助,cin只有遇到回车后,才把读入的数据处理,如果你事先把crtl+z和其他字符一起,形成字符串,该标志就当成字符一起突入了,无法判断出它是EOF,这个与文件介绍符‘\0’不同,只有当你回车后,在输入ctrl+z,才会结束,如果你是在搞acm,你问下老师,编译器的原理,你就知道了
T_Einstein
2009-08-24 · TA获得超过901个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:0
展开全部
在知道里,我是最早提到流结束在windows下用CTRL+Z;在UNIX下用CTRL+D;
C++原理就是要刷新缓冲区。
举个例子:while(cin>>a);这个语句块里,a是常规字符型。那么按道理,输入a ^Z应该会退出循环,但事实上并没有。要刷新缓冲区就用回车。如果不知道缓冲区是什么,HI我。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
milinzidie
2009-08-24 · TA获得超过1687个赞
知道小有建树答主
回答量:1297
采纳率:0%
帮助的人:1162万
展开全部
如同它前面有其他字符, 那么ctrl+z就变成了千面字符串的一部分, 例如adfaoifaectrl+z, 程序判断不等于ctrl+z. 那个程序里并没有功能可以将ctrl+z从里面分离出来. 所以必须单独使用.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式