参考资料:http://www.cnblogs.com/day-dayup/p/3572374.html

一、前言

  在不同的OS环境下,程序中对应的文件结束符有所不一样,根据《C++ Primer Plus》一书,可知,Windows环境下的文件结束符为:Ctrl + z;Unix/Linux环境下的文件结束符为:Ctrl + d。

  对于结束符的检测,Windows环境下采用阻塞式的方式进行检查,Unix/Linux则采用非阻塞式方式进行检测。

二、就Windows环境下的文件结束符的相关分析

  对于Windows而言,由于其采用的是阻塞式的方式进行文件结束符的检测,对于输入者而言,其体验就是:只有键入Enter键才有可能触发检测在此之前是否存在【Ctrl + z】输入的存在。

  如果当前的输入缓存区内有可读的数据,那么就不会检测【Ctrl + z】的存在(有了可读的数据,不认为到了输入流的末尾)。

  【Ctrl + z】产生的不是一个普通的ASCII码值,产生的并不是一个字符,并不能够存放至输入缓冲区。

  综上,可以总结为出,输入流结束的条件为:【Ctrl + z】之前不能有任何字符的输入(【Enter除外】),否则【Ctrl + z】起不到结束输入流的作用。

  另外,如果想在一个程序中不同地方利用cin的各类方式来读取输入流的数据,可以在使用cin语句之前进行缓冲区的清除。

 fflush(stdin);
cin.clear();

Windows环境下C++中关于文件结束符的问题的更多相关文章

  1. windows环境下svn同步web文件[转]

    windows环境下svn同步web文件 SVN在团队开发中使用非常普遍,是一个很方便的版本控制系统. 如果要是能将SVN服务器上的数据自动发布到Web服务器,那将是整个项目开发.测试更加便捷.利用S ...

  2. windows环境下备份与恢复,与文件拷贝

    mySQL数据库在windows环境下备份与恢复 解压版需进入数据库安装目录.安装版可以忽略本步骤: 1.先在运行中输入CMD,启动命令行2.进入Mysql的Bin目录:E:\Program File ...

  3. windows环境下 php 将office文件(word/excel/ppt)转化为pdf(转)

    将office文件转化为pdf的方法有 1.利用openoffice提供的服务 (比较简单,但是转化的效果不太好) 2.使用office提供的服务 (注:这在windows服务器上,并且服务器上面安装 ...

  4. windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤

    nutch2.x 在eclipse中实现抓取数据存进mysql步骤 最近在研究nutch,花了几天时间,也遇到很多问题,最终结果还是成功了,在此记录,并给其他有兴趣的人提供参考,共同进步. 对nutc ...

  5. Windows环境下用C#编程将文件上传至阿里云OSS笔记

    Windows环境下用C#编程将文件上传至阿里云OSS笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/detai ...

  6. Windows环境下文件的彻底删除与恢复,推荐几个工具(整理)

    1. 背景 在Windows(从XP到Win7)中删除文件时,无论是Delete或者是Shift+Delete,都不能真正的删除文件,它做的事情只是从文件分配表中删除了该文件的信息,而并未将文件从存储 ...

  7. 在windows环境下运行compass文件出现的错误提示解决方案

    在windows环境下运行compass文件出现的错误提示解决方案 例如:经常在项目中运行grunt命令编译scss文件的时候,会出现下面的错误提示 (Encoding::CompatibilityE ...

  8. windows环境下创建 .文件夹

    一.windows环境下创建 .文件夹 1.新建一个文件夹 2.重命名为.properties.(名字前后都加点) 二.windows环境下创建 .文件 1.上面的方法对文件同样适用 2.运行CMD, ...

  9. maven在windows环境下加载settings.xml文件

    今天发现maven在windows环境下加载的settings.xml文件是c:下的,就算修改conf下的settings.xml里的<localRepository>给他明确指向也没用.

随机推荐

  1. 配置solr6.2

    1 解压solr ,把 solr-6.2.0\server\solr-webapp下的 webapp 文件夹拷贝到tomcat 的webapps下,重命名为solr,也可以是其他名字: ( 注意,此处 ...

  2. 俄罗斯方块win c 图形线程

    环境准备:visual stdio 2015,easyx, //

  3. Docker桥接宿主机网络与配置固定IP地址

    有些需求是把这个容器与宿主机在同一个网段,但是本人不建议这样子去操作,因为一个容器本身就是一个封装好的服务.建议去按默认的网络去实现. 临时设置 [root@linux-docker01 ~]# vi ...

  4. js实现图片局部放大效果

    图片局部放大效果结合的知识点主要是DOM的操作,以及事件的应用,所以首先要对DOM的操作有一定了解,其次能对事件的应用有一定的累积. 如上图,可以看到,这是放大镜的基本效果,主要分成左右两个部分.左边 ...

  5. SpringMVC云题库错题及答案汇总

    试题分析:D,BeanNameViewResolver:这个视图解析器跟XmlViewResolver基本相同,它是通过把返回的逻辑视图名称去匹配定义好的视图bean对象 @ModelAttribut ...

  6. php字符串转数组

    下面代码包括了含有中文汉字的字符. function str2arr($str) { $length = mb_strlen($str, 'utf-8'); $array = []; for ($i= ...

  7. 函数QFileSystemModelPrivate::_q_fileSystemChanged

    由于Qt的体系过于庞大,即使是某个模块,分析起来也十分困难.对于QFileSystemModel,我们在这里对单个重要函数慢慢分析 1 /*! \internal The thread has rec ...

  8. L342 Air Pollution Is Doing More Than Just Slowly Killing Us

    Air Pollution Is Doing More Than Just Slowly Killing Us In the future, the authorities might need to ...

  9. mysql事务特点总结

    1.mysql事务有4个隔离级别,以及会出现的问题如下图: 2. 脏读: 开启事务A,B.事务A在还没有提交的情况下,假如第一次查询id=1的用户的age=24.事务B执行了update 表 set ...

  10. bottle 0.5中的key-value数据库

    import anydbm as dbm import cPickle as pickle class BottleBucket(object): '''Memory-caching wrapper ...