Mic*_*ato 1 c++ while-loop switch-statement visual-c++
我是初学者,我从一本书中复制了这段代码,但是它不起作用,因为当我输入EOF时,程序而不是退出while循环会打印两次默认消息.这就像一个小时,我寻找一个解决方案,但我尝试过的任何工作,谢谢你的帮助.该计划应该计算每种等级的数量.
#include "stdafx.h"
#include <iomanip>
#include <iostream>
#include <math.h>
#include <ctype.h>
using namespace std;
int main()
{
int grade,
aCount = 0,
bCount = 0,
cCount = 0,
dCount = 0,
fCount = 0;
cout << "Enter the letter grades (EOF to quit) ->>";
while ((grade = cin.get()) != 'EOF') {
switch (grade) {
case 'A':
++aCount;
break;
case 'B':
++bCount;
break;
case 'C':
++cCount;
break;
case 'D':
++dCount;
break;
case 'F':
++fCount;
break;
case '\n':
case '\t':
case ' ':
break;
default :
cout << "Invalid letter grade entered. Enter a new grade." << endl;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
文档cin.get()告诉我们您正在寻找的返回条件是EOF.
while ((grade = cin.get()) != EOF) {
Run Code Online (Sandbox Code Playgroud)
就是这样 - 没有引号!它是一个扩展为整数的宏.你所做的是写一个"多字节字符文字" 'EOF',它具有实现定义的含义,在这里没有真正的相关性.
你从书中复制错了,或者书是错的.
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |