Почему я не могу проверить значение ASCII, которое я назначаю символу (250) в этом коде? Кажется странным тестировать на -6, когда это не то, что я присвоил символу.
#include <iostream>
using namespace std;
int main()
{
char symbol = 250; // dot symbol
int a = symbol;
cout << symbol << endl; // Outputs dot symbol
cout << a << endl; // Outputs -6
if(symbol == 250)
cout << "250 works";
if(symbol == -6)
cout << "-6 works"; // -6 test works
return 0;
}
char
подписано на вашей платформе. 250 вне диапазона для подписанного персонажа. Ты хочешь:
if (symbol == static_cast<char>(250))
Иначе symbol
будет повышен до целого числа. В качестве альтернативы используйте unsigned char
вместо char
который может или не может быть подписан.
Других решений пока нет …