Après correction du code :
int main()
{
char nom[50];
int a;
int b;
int erreur = 0;
do
{
cin >> nom;
cin >> a;
cin >> b;
erreur = Calcul(nom, a, b);
}
while(erreur!=0);
}
int Calcul(char *nom2, int a2, int b2)
{
int erreur2 = 0;
switch(a2)
{
case 1 :
cout << "pas bon" << endl;
erreur2++;
break;
default :
b2++;
break;
}
return erreur2;
}
Sinon bon c'est pas le bout de code qui interesse puisque tu nous parles de caractère et la on a que des entiers relatifs qui sont manipulés

En tout cas ce code marchez chez moi.
Amicalement,
The Destiny