Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2008, 17:21
Tikitios
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años, 7 meses
Puntos: 3
Problema de novato

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;
}