nesesito ayuda, estoy haciendo un curso y debo hacer un programa que te lea la nota (a,b,c,d o f) y te la cuente, usando el while, switch, case, EOF y default. Parecia muy facil pero cuando lo ejecuto me sale un error, al poner -1(el EOF predeterminado o por lo menos el mio) para terminar el programa y pasar a la siguiente fase me imprime 2 veces el error(default)
aqui esta el codigo, ojala me ayuden:
______________
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int grade;
int aCount = 0, bCount = 0, cCount = 0, dCount = 0, fCount = 0;
cout << "Ingresa la letra de tu nota\nIngresa -1 para finalizar.\n";
while ( (grade = getchar() ) != 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 ' ':
break;
default:
cout << "Letra incorrecta.\nIngresa nueva letra.\n";
break;
}
}
cout <<"\nEl total de notas es:\n";
cout <<"A: "<< aCount <<"";
cout <<"B: "<< bCount <<"";
cout <<"C: "<< cCount <<"";
cout <<"D: "<< dCount <<"";
cout <<"E: "<< fCount <<"";
system("PAUSE");
return 0;
}