С setlocale выводит крокозябры, а с SetConsoleCP все нормально
вот код:
#include <iostream>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru-RU");
string s1;
getline(cin,s1);
if (s1.size() != 5)cout << "В слове не 5 букв";
else cout << s1[4] << s1[3] << s1[2] << s1[1] << s1[0];
}
вводишь слово из пяти букв выводятся крокозябры
а вот так все нормально:
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
string s1;
getline(cin,s1);
if (s1.size() != 5)cout << "В слове не 5 букв";
else cout << s1[4] << s1[3] << s1[2] << s1[1] << s1[0];
}
почему так происходит?
Источник: Stack Overflow на русском