关于c/c++语言的EOF(C++实现闰年判断)

时间:2023-03-10 08:30:01
关于c/c++语言的EOF(C++实现闰年判断)

EOF 是 End Of File 的缩写,在 C 语言标准库中的定义如下:

#define  EOF  (-1)

迄今为止,关于 EOF 作用的观点各异。大多数程序员认为“文件中有一个 EOF 字符,用于表示文件的结尾”。其实,在个人看来这是一种最简单、最粗暴的理解,但实际上,这个观点并不正确(或者说并不完整),在文件所包含的数据中,并没有什么文件结束符。从 EOF 宏的定义中可以看出,EOF 宏的值为 -1,属于 int 类型的数据,在 32 位系统中,可以表示为 0xFFFFFFFF。由此可见,EOF 并不是一个字符,也不是文件中实际存在的内容(在第一个参考链接有详细说明)。

  1. 使用EOF实现闰年不断判断
    #include<iostream>
    using namespace std;
    int main()
    {
    int n;
    char c = ;//初始化c;
    while (c!=EOF)
    {
    cout << "cinyear:";
    cin >> n;
    if (n % == && n % == || n % != && n % == )
    cout << "runnian" << endl;
    else
    cout << "feirun " << endl;
    cout << "tip:";
    cin >> c;
    c = cin.get();
    } return ;
    }
  2. 不使用EOF实现
    #include<iostream>
    using namespace std;
    int main()
    {
    int n;
    char c = ;//初始化c
    while (c!='o')
    {
    cout << "cinyear:";
    cin >> n;
    if (n % == && n % == || n % != && n % == )
    cout << "runnian" << endl;
    else
    cout << "feirun " << endl;
    cout << "cinchice 'i'is in,'o'is out:";
    cin >> c;
    } return ;
    }

参考文章:

http://c.biancheng.net/view/345.html

https://blog.****.net/qq_34681261/article/details/70147965