C++——EOF是个什么东西?

  1. EOF是end of file的缩写,表示”文字流”(stream)的结尾。这里的”文字流”,可以是文件(file),也可以是标准输入(stdin)。
  2. EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。#define EOF (-1)
  3. 除了表示文件结尾,EOF还可以表示标准输入的结尾。但是,标准输入与文件不一样,无法事先知道输入的长度,必须手动输入一个字符,表示到达EOF。

代码示例:

#include <iostream>//键盘输入随机个数的数放到vector里再输出,以EOF结尾
#include <iostream>
#include <vector>
#include <iomanip> 
using namespace std;

int main(){
    vector<int> a;
    int input;
    int length;
    cout << "please input some numbers(EOF to end!):" << endl;
    while (cin){
        cin >> input; 
        a.push_back(input);
    }
    length = a.size();
    for (int j = 0; j < length; j++){
        cout << setw(4)<<a[j];
    }
    cout << endl;
    return 0;
}

程序结果过程:
这里写图片描述

如果没有EOF,cin流是不停下的,会一直等待输入。
还有一个解决办法是,每输一个数,都按一下回车,因为只有按下回车之后,数才会进入输入流。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值