Answer the question
In order to leave comments, you need to log in
Why don't Russian characters work in case?
I am programming in C++ in the Visual Studio environment and faced such a problem that case only works with English characters, and if you put Russian characters instead, it gives errors
. Code in Russian:
#include <iostream>
using namespace std;
int main()
// Робот может перемещаться в четырех направлениях ("С" — север, "З" — запад, "Ю" — юг, "В" — восток) и принимать три цифровые команды:
// 0 — продолжать движение, 1 — поворот налево, –1 — поворот направо.
// Дан символ X — исходное направление робота и число N — посланная ему команда. Вывести направление робота после выполнения полученной команды.
{
setlocale(LC_ALL, "Russia");
char x;
int n;
cout << "Введите исходное направление робота\n( 'С' - север, 'З' - запад, 'Ю' - юг, 'В' - восток ) " << endl;
cin >> x;
cout << "Введите команду для робота\n( 0 - продолжать движение, 1 - поворот налево, -1 - поворот направо )" << endl;
cin >> n;
if (n > -2 && n < 2)
{
if (n == -1)
{
switch (x)
{
case 'С': x = 'В'; cout << "Направление: " << x << endl; break;
case 'З': x = 'С'; cout << "Направление: " << x << endl; break;
case 'Ю': x = 'З'; cout << "Направление: " << x << endl; break;
case 'В': x = 'Ю'; cout << "Направление: " << x << endl; break;
}
}
if (n == 1)
{
switch (x)
{
case 'С': x = 'З'; cout << "Направление: " << x << endl; break;
case 'З': x = 'Ю'; cout << "Направление: " << x << endl; break;
case 'Ю': x = 'В'; cout << "Направление: " << x << endl; break;
case 'В': x = 'С'; cout << "Направление: " << x << endl; break;
}
}
if (n == 0)
{
switch (x)
{
case 'С': x = 'С'; cout << "Направление: " << x << endl; break;
case 'З': x = 'З'; cout << "Направление: " << x << endl; break;
case 'Ю': x = 'Ю'; cout << "Направление: " << x << endl; break;
case 'В': x = 'В'; cout << "Направление: " << x << endl; break;
}
}
}
else cout << "Вы ввели неверную команду" << endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
// Робот может перемещаться в четырех направлениях ("С" — север, "З" — запад, "Ю" — юг, "В" — восток) и принимать три цифровые команды:
// 0 — продолжать движение, 1 — поворот налево, –1 — поворот направо.
// Дан символ X — исходное направление робота и число N — посланная ему команда. Вывести направление робота после выполнения полученной команды.
{
setlocale(LC_ALL,"Russia");
char x;
int n;
cout << "Введите исходное направление робота\n( 'N' - север, 'W' - запад, 'S' - юг, 'E' - восток ) " << endl;
cin >> x;
cout << "Введите команду для робота\n( 0 - продолжать движение, 1 - поворот налево, -1 - поворот направо )" << endl;
cin >> n;
if ( n > -2 && n < 2)
{
if ( n == -1 )
{
switch (x)
{
case 'N': x = 'E'; cout << "Направление: " << x << endl;break;
case 'W': x = 'N'; cout << "Направление: " << x << endl;break;
case 'S': x = 'W'; cout << "Направление: " << x << endl;break;
case 'E': x = 'S'; cout << "Направление: " << x << endl;break;
}
}
if ( n == 1 )
{
switch (x)
{
case 'N': x = 'W'; cout << "Направление: " << x << endl;break;
case 'W': x = 'S'; cout << "Направление: " << x << endl;break;
case 'S': x = 'E'; cout << "Направление: " << x << endl;break;
case 'E': x = 'N'; cout << "Направление: " << x << endl;break;
}
}
if ( n == 0)
{
switch (x)
{
case 'N': x = 'N'; cout << "Направление: " << x << endl;break;
case 'W': x = 'W'; cout << "Направление: " << x << endl;break;
case 'S': x = 'S'; cout << "Направление: " << x << endl;break;
case 'E': x = 'E'; cout << "Направление: " << x << endl;break;
}
}
}
else cout << "Вы ввели неверную команду" << endl;
return 0;
}
Answer the question
In order to leave comments, you need to log in
https://ru.wikipedia.org/wiki/CP866
https://ru.wikipedia.org/wiki/Windows-1251
https://ru.wikipedia.org/wiki/UTF-8
Have a great weekend
Try to set the required characters through a hex sequence
char c='\122';//значение символа в шестнадцетиричном виде
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question