C++从键盘输入文件结束符

        当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符,或遇到一个无效输入时(例如需要将输入读到一个int变量中,但实际从键盘输入的是字符),istream对象的状态会变成无效。处于无效的istream对象会是条件变为假。

       当从键盘向程序输入数据时,对于如何指出文件结束符,不同的操作系统有不同的实现。在Windows平台中,输入文件结束符的方法是:按Ctrl+z,然后按Enter。在Unix或Linux下是按Ctrl+d,无需Enter,当然,由于当你输入Ctrl+d后,它仍然停留在系统的输入缓冲区中,所以你还是需要使用一个Enter使其生效。下面是几个关于该用法的示例:

#include <iostream>
 #include <string>
using namespace std;
 /*
 测试标准输入cin和文件结束符
 测试平台:Windows
 */
 int test_string_one();
 int test_string_two();
 int test_string_three();
int main()
 {
     //test_string_one();
     test_string_two();
 }
 int test_string_one() //第一个程序:输入的是整数
 {
     int num;
     while(cin>>num)
         cout << num << " ";
     return 0;
 }
 /*
 输入:1 2 3 4 5 Ctrl+d Enter
 输出:1 2 3 4 5
 此处之所以循环停止,是因为遇到一个无效输入(Ctrl+d),而不是遇到了文件结束符。
 因为在windows平台,结束符是Ctrl+z,然后按Enter。
 例如输入:1 2 3 4 5 a Enter
 输出仍是:1 2 3 4 5
 当然如果该测试用例用于Linux下,那么由于系统的结束符是Ctrl+d,所以虽然输出一样,
 但是之所以循环停止,是因为到达了文件结束,而不是得到了一个无效输入。
 */

 int test_string_two() //第二个程序:输入的是字符串
 {
     string word;
     while(cin>>word)
         cout << word << " ";
     return 0;
 }
 /*
 输入:hello world Ctrl+z 回车
 输出:hello world
 此处之所以循环停止,是因为遇到一个文件结束符。
 因为在windows平台,结束符是Ctrl+z,然后按Enter。
 */
 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

基于vue.js的渐进式组件尝试

我们有个内部运营系统,是基于keenthemes的一个主题进行开发的,而这个主题就是基于jQuery+bootstrap+jQueryPlugins 进行的定制...

23610
来自专栏指尖下的Android

AndroidStudio无法输出日志的Bug

正常情况下我们在真机调试程序时,如图箭头所指的位置显示的应该是该应用的主包名,但是有的时候明明打开了开发者模式,但是却无法输出日志,该位置显示的也不是应用包名,...

2802
来自专栏jessetalks

初识WEB:输入URL之后的故事

概述   为什么输入www.cnblogs.com之后敲一个回车,浏览器就会显示我们所看到的内容?这家伙在背后到底偷偷的干了哪些事情?今天我们就来挖掘一下这背...

3637
来自专栏Python专栏

用Python给程序加个进度条

4103
来自专栏为数不多的Android技巧

mac下自动切换输入法

长久以来,输入法一直是困扰mac用户的一个问题;不过随着国内厂商的跟进,这种状况得到了极大的改善。不用自己去折腾什么鼠须管了,狼厂和企鹅都做的不错。

5181
来自专栏菩提树下的杨过

android 模拟器安装二三事

今天在测试一个手机版网站时,发现“微软的wp7”跟“苹果的iOS”对于<select>..</select>元素的触摸操作不太一样,wp7是全屏切换到一个上下滚...

37710
来自专栏Seebug漏洞平台

危险的 target="_blank" 与“opener”

原文:http://mp.weixin.qq.com/s/T4jQUdS-rar7hr2EWilJrw

4237
来自专栏腾讯移动品质中心TMQ的专栏

Web前端性能基础指标&计算方式

从用户角度而言,打开一个页面想要的就是页面可以尽快有响应,加载完并且可以允许交互;因此前端的性能可以用白屏时间,首屏时间,可交互时间来衡量。

8889
来自专栏企鹅号快讯

JavaScript 性能优化技巧分享

英文: Ivan Čurić 译文:葡萄城控件 http://www.cnblogs.com/powertoolsteam/p/javascript-per...

37915
来自专栏Python爬虫与算法进阶

如何在电脑上多开微信?(windows)

新媒体管家 在电脑上多开微信,在工作中很常见,今天来介绍一种简单的方法。(windows下) 这个问题在百度和知乎上都有许多回答,很多都是:长按Enter 电脑...

4418

扫码关注云+社区

领取腾讯云代金券