Правильно ли задал операции сравнения?
Дословно#include<locale>
//...
locale loc(".1251");
if(!isalpha(c, loc) && !isspace(c, loc))
{
  //...
}
win10 VS2017
> если это буква НЕ RUS(маленькая,большая, и отдельно стоящие ё), НЕ ENG(маленькая,большая), и это НЕ пробел - то меняю boll на значение false
Здесь ты пишешь "И", а в коде почему-то стоит "ИЛИ". 
вдумайся в смысл выражения (c != 32) || (c != 184), оно всегда истинно
И сравнивай стандартными функциями вроде isalpha, в крайнем случае c >= 'a' && c <= 'z', но не с числами, во первых не читаемо, во вторых нет гарантий, что кодировка ascii. 
А ещё лучше упростить код так:bool isValidChar = isAlpha(c) || isDigit(c) || isSomethingElse(c);
сразу понятно, что символ нам подходит только, если удовлетворяет хотя бы одному из условий. А чтоб совсем хорошо было, используй регулярные выражения.