Hola!
No me convence mucho la condicion del while... si quieres hacer que el usuario salga del bucle ,segun lo que planteaste, puedes hacer
while( !(GetAsyncKeyState('S') )
{
//y el resto
}
No entiendo la segunda condicion que planteas en el while... ( el "& 1") ? Puede que ahi te esté tirando el error.
Aunque yo no agregaria toda la ENORME libreria de windows para solo esa funcion de la tecla. Puedes conseguir el mismo resultado con una variable char y el metodo cin.get(), y seria una forma mas eficiente y rapida, para conseguir los mismos resultados. Siempre buscamos la eficiencia del codigo. Soluciones simples son mejores.
//donde declaraste las demas variables
char controlUsuario;
// luego si colocar la S o la N va en gusto del programador, entiendo más clara cuando es
//negativa la condicion, osea cuando oprime n. Fijate que se tiene en cuenta n minuscula Y
//N mayuscula.
while( controlUsuario != 'n' && controlUsuario != 'N' )
{
//operaciones
cout << "Continuar ? (s/n)";
cin.get(controlUsuario);
}
Luego, en la asignacion, no es necesario los parentesis.
d = b + c
// recuerda poner nombres DESCRIPTIVOS para tus variables, hace más legible el código
// lo anterior podria ser, por ejemplo.
suma = num + otroNum;
//recuerda que mientras mas CLARO y EVIDENTE a la vista el codigo mejor.
Por ultimo, en la linea donde imprimir por pantalla el resultado de la suma, puedes colocar directamente esto:
cout << "\nLa suma es: " << b + c << endl;
Como ves, no es necesario ni bajarlo a una variable
Saludos