Форум программистов, компьютерный форум CyberForum.ru

Кракозябра кадировки - C++

Восстановить пароль Регистрация
 
rusianvodka
0 / 0 / 0
Регистрация: 20.06.2013
Сообщений: 47
31.10.2013, 04:13     Кракозябра кадировки #1
Здравствуйте,
имеется вот такой кодик который найден в интернете,
проблема в том что у меня он выводит не то что должен.
Первую букву названия файла и краказябру вместо русского названия.
А идея в выводе списка всех имен файлов в определённом каталоге
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
void Dir();
 
using namespace std;
void Dir()
{
    WIN32_FIND_DATA fd;
    
    HANDLE hFind=FindFirstFile(L"D:\\*.*", &fd);
 
 
    if(hFind != INVALID_HANDLE_VALUE)
    {
        do{
            
            printf("%s: %s\n", (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? "Folder" : "File", fd.cFileName);
        }while(FindNextFile(hFind, &fd));
 
 
        ::FindClose(hFind);
    }
 
}
 
void main()
{
    Dir();
    _getch();
}
Буду благодарен за помощь.
Миниатюры
Кракозябра кадировки  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 04:13     Кракозябра кадировки
Посмотрите здесь:

C++ Qt Кодировка базы Access , отображение русских букв - кракозябра
кракозябра (Delphi XE2) Delphi
Кракозябра а не нормальный текст PHP БД
Именнованые каналы и кракозябра C++ Linux

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mytilus
82 / 82 / 8
Регистрация: 04.10.2012
Сообщений: 329
31.10.2013, 05:04     Кракозябра кадировки #2
Меняем WIN32_FIND_DATA на WIN32_FIND_DATAA, FindFirstFile на FindFirstFileA и FindNextFile на FindNextFileA. Добавляем #include <locale.h>,а перед вызовом Dir() пишем:
C++
1
setlocale(LC_CTYPE, "Russian");
rusianvodka
0 / 0 / 0
Регистрация: 20.06.2013
Сообщений: 47
31.10.2013, 05:53  [ТС]     Кракозябра кадировки #3
Цитата Сообщение от mytilus Посмотреть сообщение
Меняем WIN32_FIND_DATA на WIN32_FIND_DATAA, FindFirstFile на FindFirstFileA и FindNextFile на FindNextFileA. Добавляем #include <locale.h>,а перед вызовом Dir() пишем:
C++
1
setlocale(LC_CTYPE, "Russian");
думаю что задам странный вопрос.
но где можно почитать про это всё) ибо когда появилась данная ошибка я примерно предполагал что это связано.
но что гуглить и что читать смотреть не очнеь осознал.
Георгий Фирсов
5 / 5 / 0
Регистрация: 05.11.2012
Сообщений: 62
31.10.2013, 07:24     Кракозябра кадировки #4
C++
1
2
3
#include <locale.h>
setlocale(LC_ALL, "russian");
//...
mytilus
82 / 82 / 8
Регистрация: 04.10.2012
Сообщений: 329
31.10.2013, 09:33     Кракозябра кадировки #5
rusianvodka, [cut].
 Комментарий модератора 
Пункт 5.8 Правил: Ссылки на сторонние форумы запрещены.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
31.10.2013, 11:18     Кракозябра кадировки #6
rusianvodka,
C++
1
wprintf
Yandex
Объявления
31.10.2013, 11:18     Кракозябра кадировки
Ответ Создать тему
Опции темы

Текущее время: 05:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru