关于c/c++语言的EOF(C++实现闰年判断)
EOF 是 End Of File 的缩写,在 C 语言标准库中的定义如下:
#define EOF (-1)
迄今为止,关于 EOF 作用的观点各异。大多数程序员认为“文件中有一个 EOF 字符,用于表示文件的结尾”。其实,在个人看来这是一种最简单、最粗暴的理解,但实际上,这个观点并不正确(或者说并不完整),在文件所包含的数据中,并没有什么文件结束符。从 EOF 宏的定义中可以看出,EOF 宏的值为 -1,属于 int 类型的数据,在 32 位系统中,可以表示为 0xFFFFFFFF。由此可见,EOF 并不是一个字符,也不是文件中实际存在的内容(在第一个参考链接有详细说明)。
- 使用EOF实现闰年不断判断
#include<iostream> using namespace std; int main() { int n; char c = 0;//初始化c; while (c!=EOF) { cout << "cinyear:"; cin >> n; if (n % 100 == 0 && n % 400 == 0 || n % 100 != 0 && n % 4 == 0) cout << "runnian" << endl; else cout << "feirun " << endl; cout << "tip:"; cin >> c; c = cin.get(); } return 0; }
- 不使用EOF实现
#include<iostream> using namespace std; int main() { int n; char c = 0;//初始化c while (c!='o') { cout << "cinyear:"; cin >> n; if (n % 100 == 0 && n % 400 == 0 || n % 100 != 0 && n % 4 == 0) cout << "runnian" << endl; else cout << "feirun " << endl; cout << "cinchice 'i'is in,'o'is out:"; cin >> c; } return 0; }
参考文章: