C++Primer第五版 Page39如何输入文本结束符

来源:互联网 发布:三个数最大公约数算法 编辑:程序博客网 时间:2024/06/10 03:46

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

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

#include<iostream>int main(){int sum = 0,value = 0;while(std::cin >> value){sum += value;}std::cout <<"sum is " <<sum <<std::endl;system("pause");return 0;}
在Dos窗口输入 3 4 5 6 ctrl + z 回车(或者输入任意的字符回车也可以)

输出:sum is 18
此处之所以循环停止,是因为遇到一个文件结束符。
因为在windows平台,结束符是Ctrl+z,然后按Enter。

原创粉丝点击