什么是C ++中的EOF键

时间:2012-08-13 15:54:17

标签: c++ io

我正在使用Windows 7旗舰版。我是C ++的新手。以下是我对switch语句的练习。

void GradeBook::inputGrades()
{
    int grade;

    cout << "Enter Grade: " << endl;

    while((grade=cin.get()) != EOF)
    {
       switch(grade)
        {
            case 'A':
            case 'a':
                aCount++;
                break;

            case 'B':
            case 'b':
                bCount++;
                break;

            case 'C':
            case'c':
                cCount++;
                break;

            case 'd':
            case 'D':
                dCount++;
                break;

            case 'F':
            case 'f':
                fCount++;
                break;

           case '\n':
           case ' ':
           case '\t':
               break;

            default:
                cout << "Incorrect data. Re Enter" << endl;
                break;
        }

    }
}

我在netbeans中运行这个,我按下所有组合ctrl + c,ctrl + z,ctrl + d但它没有结束!!这是为什么?我做错了什么吗?请帮忙!!

2 个答案:

答案 0 :(得分:2)

cin.get()非常低级别。代码应该使用更高级别的接口。它应该一次读取一个字符,所以这样写:

char grade;
while (cin >> grade)

流提取器将在文件末尾失败,这将使while循环终止。

答案 1 :(得分:2)

EOF character是Ctrl + Z,后跟Windows平台上的换行符。

据推测,Netbeans中的控制台也是如此。