我正在使用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但它没有结束!!这是为什么?我做错了什么吗?请帮忙!!
答案 0 :(得分:2)
cin.get()非常低级别。代码应该使用更高级别的接口。它应该一次读取一个字符,所以这样写:
char grade;
while (cin >> grade)
流提取器将在文件末尾失败,这将使while循环终止。
答案 1 :(得分:2)
EOF character是Ctrl + Z,后跟Windows平台上的换行符。
据推测,Netbeans中的控制台也是如此。