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

Символы %ls и %lc в printf и scanf - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Наследование классов и заголовочные файлы http://www.cyberforum.ru/cpp-beginners/thread1495069.html
Здравствуйте! Необходимо реализовать алгоритм сортировки выбором через базовый заголовочный класс Sorted, производный класс Selectionsorted и тело цикла. Sorted и Selectionsorted должны быть в виде заголовочных файлов. Попытался что - то сделать, пожалуйста, помогите исправить ошибки. //Csorted.h #pragma once class CSorter { protected: template<typename T> void swap(T& first, T&...
C++ Vector и thread-safe Как лучше сделать свой класс типа контейнер шаблонный как вектор который будет ещё и thread-safe. Допустим есть обычный класс внутри вектор и надо так чтоб можно было работать кучей потоков с этим классом и не было ошибок доступа. #pragma once #include <vector> template<typename T> class SafeArray() { private: std::vector< T*> Array; http://www.cyberforum.ru/cpp-beginners/thread1495063.html
Как изменить в реестре стартовую страницу Internet Explorer? C++
Подскажите пожалуйста как можно с помощью с++ в реестре изменить стартовую страницу Internet Explorer Я написал программу int main(){ HKEY key; PBYTE pbBuff; DWORD cBuff=0; DWORD Type=0; int a = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Internet Explorer\\Main\0"),0,KEY_ALL_ACCESS, &key); RegQueryValueEx(key,TEXT("Start Page"),NULL,NULL,NULL,&cBuff); pbBuff=new...
Условие работает неправильно C++
string getNumberEmployeeEtype(string x, int temp){ /*первым аргументом является строка должности сотрудника, вторым - номер сотрудника*/ cout << "\nВыберите должность сотрудника №" << temp << " (laborer,secretary,manager,accountant,executive,researcher;): "; cin >> x; while ((x != "laborer") || (x != "secretary") || (x != "manager") || (x != "accountant") || (x != "executive") || (x !=...
C++ Взаимодействие С++ с другими языками http://www.cyberforum.ru/cpp-beginners/thread1495031.html
Доброго времени суток. Возник такой вопрос, можно ли написать код например для работы с OLE, скажем на Java, и использовать этот код в языке С++, ну может быть DLL или еще как нибудь. Вопрос довольно абстрактный, но все же как С++ может взаимодействовать с другими языками?
C++ Вычислить период колебаний контура по формуле Томпсона Друзья , прошу пожалуйста помочь с написанием кода. нужно произвести расчет по данной формуле T=2pi*√LC (формула для расчета периода эл.тока) L и C задается пользователем.размерность может быть разной , но должна преобразовываться к системе Си. pi=3.14159 подробнее

Показать сообщение отдельно
Krasiosoft
 Аватар для Krasiosoft
51 / 51 / 15
Регистрация: 01.06.2015
Сообщений: 189
08.07.2015, 05:55     Символы %ls и %lc в printf и scanf
Здравствуйте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
wchar_t c;
wchar_t str[5];
 
c = _getwch(); // считывает символ правильно. Проверял, коды совпадают c unicode:
// а - 1072
// б - 1073
// в - 1074
printf("%lc",c); // некорректно выводит символ, пока не установить setlocale(LC_ALL, "rus")
scanf("%ls",str); // некорректно считывает символы, коды:
// а - 160
// б - 161
// в - 162
// это OEM 866
// а если поставить setlocale(LC_ALL, "rus"), то считывает что-то совсем левое: str[0]==1038, str[1]==1118, str[2]==0
printf("%lc",L'ё'); // некорректно выводит символ, пока не установить setlocale(LC_ALL, "rus")
printf("%ls",L"абв"); // некорректно выводит символы, пока не установить setlocale(LC_ALL, "rus")
Почему так происходит?

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