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) 展开
所提出的问题,为什么ctrl+z前面如果有数据是不行的. ctrl+z要独立出来才能结束while循环.请熟悉C++原理的人具体告诉在下。在下不胜感激。
为什么我按回车后再按ctrl Z再回车后,不是跳出循环直接运行到程序结束,而是又起一行后还能输入,而且貌似一旦输入后,以前的Ctrl Z就不起作用了。另外ctrl+z是所谓的截断流吗?我曾经把流比作纸带,ctrl+Z认为是剪断纸带,但这里行不通,请问如何理解流?(流表示字符随着时间顺序生成或消耗。——C++ Primer) 展开
展开全部
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,你问下老师,编译器的原理,你就知道了
展开全部
在知道里,我是最早提到流结束在windows下用CTRL+Z;在UNIX下用CTRL+D;
C++原理就是要刷新缓冲区。
举个例子:while(cin>>a);这个语句块里,a是常规字符型。那么按道理,输入a ^Z应该会退出循环,但事实上并没有。要刷新缓冲区就用回车。如果不知道缓冲区是什么,HI我。
C++原理就是要刷新缓冲区。
举个例子:while(cin>>a);这个语句块里,a是常规字符型。那么按道理,输入a ^Z应该会退出循环,但事实上并没有。要刷新缓冲区就用回车。如果不知道缓冲区是什么,HI我。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如同它前面有其他字符, 那么ctrl+z就变成了千面字符串的一部分, 例如adfaoifaectrl+z, 程序判断不等于ctrl+z. 那个程序里并没有功能可以将ctrl+z从里面分离出来. 所以必须单独使用.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询