- EOF是end of file的缩写,表示”文字流”(stream)的结尾。这里的”文字流”,可以是文件(file),也可以是标准输入(stdin)。
- EOF不是特殊字符,而是一个定义在头文件stdio.h的常量,一般等于-1。#define EOF (-1)
- 除了表示文件结尾,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流是不停下的,会一直等待输入。
还有一个解决办法是,每输一个数,都按一下回车,因为只有按下回车之后,数才会进入输入流。