Чтение русских символов из файла - C++

215
28 октября 2018, 03:50

Не могу понять, в чем проблема. При чтении русских символов через wifstream из файла в wstring все равно появляются не русские символы, а бред какой-то(где).

Исходный код:

void    READER_THREAD(bool *READER_THREAD_CLOSE, std::wstring* FILE_PATH, unsigned int* lastError,
    std::vector<std::wstring>* MESSAGES_FROM_LOG, std::mutex* MESSAGES_FROM_LOG_ACCESS, std::mutex* LAST_ERROR_ACCESS)
{
    std::wifstream LOG_FILE;
    int lastSize = -1;
    LOG_FILE.open((*FILE_PATH));
    if (!LOG_FILE.is_open())
    {
        (*LAST_ERROR_ACCESS).lock();
        (*lastError) = ERR_WRONG_FILENAME;
        (*LAST_ERROR_ACCESS).unlock();
        return;
    }
    LOG_FILE.close();
    int x = 0; std::wstring buffer;
    while (!(*READER_THREAD_CLOSE))
    {
        std::this_thread::sleep_for(std::chrono::milliseconds(THREAD_DELAY));
        if (SizeOFile((*FILE_PATH)) != lastSize)
        {
            x = 0;
            LOG_FILE.open((*FILE_PATH));
            (*MESSAGES_FROM_LOG_ACCESS).lock();
            int MESSAGE_FROM_LOG_SIZE = (*MESSAGES_FROM_LOG).size();
            (*MESSAGES_FROM_LOG_ACCESS).unlock();
            while (x < MESSAGE_FROM_LOG_SIZE - 1) if (getline(LOG_FILE, buffer)) x++;
            if (x >= MESSAGE_FROM_LOG_SIZE - 1)
            {
                (*MESSAGES_FROM_LOG_ACCESS).lock();
                while (getline(LOG_FILE, buffer)) (*MESSAGES_FROM_LOG).push_back(buffer);
                (*MESSAGES_FROM_LOG_ACCESS).unlock();
                lastSize = SizeOFile((*FILE_PATH));
            }
            LOG_FILE.close();
        }
        else std::this_thread::sleep_for(std::chrono::milliseconds(THREAD_DELAY));
    }
}
READ ALSO
JAVA(intelliJ idea) проблемы с установкой JDBC?

JAVA(intelliJ idea) проблемы с установкой JDBC?

Развернул на localhost сервер + поставил базу postgreSQLпервая на 8080 вторая на 5432

186
Как заменить getState и getId(из Thread) при исп. Runnable?

Как заменить getState и getId(из Thread) при исп. Runnable?

Я создавал потоки испextends Thread, решил заменить его на Runnable

191
Поддержание подключения с сервером

Поддержание подключения с сервером

Доброго времени суток

190
Где храниться история в IntelliJ IDEA?

Где храниться история в IntelliJ IDEA?

И как ее удалить? И если я закоммичу проект, то история попадет на GitHub?

248