че это такое вообще, на что оно проверяет if (a < 48 or a > 51) еще ты вводишь wchar, а wchar это символ типа и ты не можешь его проверить будет ли он больше или меньше чем число, используй int или short вместо wchar
что такое "1543" ?
вообще это просто 4 каких-то символа
cin >> string просто сохранит их как 4 символа
cin >> int съест все идущие подряд цифры и попытается собрать из них число (1543)
cin >> char заберет только один символ за раз