C++ C+中的EOF键是什么+;

C++ C+中的EOF键是什么+;,c++,io,C++,Io,我使用的是Windows7Ultimate。我是C++新手。下面是我对switch语句的练习 void GradeBook::inputGrades() { int grade; cout << "Enter Grade: " << endl; while((grade=cin.get()) != EOF) { switch(grade) { case 'A':

我使用的是Windows7Ultimate。我是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;
        }

    }
}
void成绩册::inputGrades()
{
国际等级;
coutcin.get()的级别非常低。代码应该使用更高级别的接口。它应该一次读取一个字符,所以这样编写:

char grade;
while (cin >> grade)
流提取器将在文件末尾失败,这将使while循环终止。

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

char grade;
while (cin >> grade)
流提取器将在文件末尾失败,这将使while循环终止。

在Windows平台上,一个is Ctrl+Z后跟一个换行符

对于Netbeans中的控制台,这可能是相同的。

在Windows平台上,一个是Ctrl+Z,后跟一个换行符


大概对于Netbeans中的控制台也是如此。

我想你的问题不是真的关于EOF,而是关于它:Control+Z或F6。通常需要自己在一行上输入,所以基本上enter后跟Control+Z或F6。嗯……仍然不起作用。你确定它在Netbeans中起作用吗?或者,ch不是更好吗将参数测试设置为-1?因此,当用户输入-1时,它将中断。我认为你的问题实际上不是关于EOF,而是关于它:Control+Z或F6。通常需要自己在一行上输入,所以基本上是enter,然后是Control+Z或F6。嗯……仍然不工作。你确定它在netbeans中工作吗?或者,使用c不是更好将参数测试更改为-1?因此,当用户输入-1时,它将中断。这不会改变任何东西。这里的问题是如何“键入”输入的结尾。这是一个有用的答案,但它是错误的答案。我不确定是应该向上投票还是向下投票。这不会改变任何东西。这里的问题是如何“键入”输入的结尾。这是一个有用的答案,但它是错误的答案。我不确定我应该向上投票还是向下投票。