while (!(cin >> res))

donne, après l'opération de flux (voir explication dans le message précédent) :


while (!cin)

Est ensuite appelé sur cin soit l'opérateur de conversion vers bool en...