키릴 문자 ("Иванчо говори само глупости")를 콘솔에서 읽으려고하는데, 내가 얻는 모든 것은 "????"입니다. 처음으로 나는 C++로 글을 쓰고 누군가가이 문제를 해결하도록 도와 준다면 나는 매우 위대 할 것이다.콘솔에서 키릴 문자 읽기
이 내 코드를 어떻게 조합에 대한
#include<iostream>
#include<string>
#include<map>
#include<Windows.h>
#include<clocale>
using namespace std;
bool CheckLetters(int letter)
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
bool isCyrillic = ('\u0410' <= letter && letter <= '\u044f');
if ((letter >= 'a' && letter <= 'z')
|| (letter >= 'A' && letter <= 'Z')
|| isCyrillic)
{
return true;
}
return false;
}
int main()
{
string input;
map<unsigned char, int> letters;
getline(cin, input);
for (int i = 0; i < input.size(); i++)
{
unsigned char currentLetter = input[i];
if (CheckLetters(currentLetter))
{
map<unsigned char, int>::iterator elementIter = letters.find(currentLetter);
if (elementIter == letters.end())
{
letters[currentLetter] = 1;
}
else
{
letters[currentLetter] ++;
}
}
}
for (map<unsigned char, int>::iterator current = letters.begin();
current != letters.end(); current++)
{
pair<unsigned char, int> currentElement = *current;
cout << currentElement.first << " " << currentElement.second <<endl;
}
return 0;
}
'char' 대신'wchar_t'을 시도 했습니까? –
아니요, 시도해 보겠습니다. –
아니요, wchar_t로 작동하지 않습니다 –