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


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

#define  EOF  (-1)

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

  1. 使用EOF实现闰年不断判断
    #include
    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;
    }
  2. 不使用EOF实现
    #include
    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;
    }

参考文章:

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

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

相关