0

Писал проект и наткнулся на проблему, что когда идет сравнение заданной строки и вводной на русском языке, то значение сравнения принимает значение false, вот простейший пример:

#include <iostream>
#include <string>

using namespace std;

int main() { string a = "Строка"; string b;

cin &gt;&gt; b;

if (a==b) {
    cout &lt;&lt; &quot;Равны&quot;;
}
else {
    cout &lt;&lt; &quot;Не равны&quot;;
}
return 0;

}

Если я введу в cin "Строка", то программа выдаст "Не равны", несмотря на то, что "Строка" == "Строка", хотя если попробовать тоже самое, но на английском языке, сравнение проводится успешно, как пофикисить такую проблему?

1 Answers1

0

Если ты используешь классическую командную строку, то сохрани исходник в OEM866. Или измени кодировку консоли на win1251.

Qwertiy
  • 123,725
  • исходник сохранил в ОЕМ866, не помогло, а кодировка консоли все время сбрасывается, плюс я для удобства открываю сразу exe-файл кода, который сам консоль открывает, так что без понятия как это сделать – David Masson Mar 10 '23 at 17:37