Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Serg_o_Grey
76 / 76 / 38
Регистрация: 29.03.2016
Сообщений: 350
#1

Wchar_t и unsigned wchar_t в windows - C++

04.04.2016, 12:13. Просмотров 286. Ответов 3
Метки нет (Все метки)

Печально, но факт:
wchar_t - 2 байта,
unsigned wchar_t - 4 байта

Вопрос1: используется ли unsigned wchar_t для хранения UNICODE-символов d windows?, и если да то..
Вопрос2: как будут размещаться байты при конвертировании char ('1') в unsigned wchar_t (00 00 00 31)?
Вопрос3: Почему эти 2 типа так отличаются?
http://www.cyberforum.ru/cpp-beginners/thread1523536.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2016, 12:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Wchar_t и unsigned wchar_t в windows (C++):

Cannot convert from 'wchar_t' to 'const wchar_t *'
такой код, порылся в инете не помогло. ломать голову надоело может кто...

Error C2664: невозможно преобразовать из "wchar_t" в "const wchar_t *"
Вот так работает: wchar_t buf; Edit_GetText(hE, buf, sizeof(buf)); ...

CP886 в Multibyte (wchar_t) и BYTE в Multibyte (wchar_t)
Помогите разобраться с кодировками. Получаю из базы данных значения и при...

Error: cannot bind 'std::basic_ostream<wchar_t>' lvalue to 'std::basic_ostream<wchar_t>&&'|
Ругается на строку Log&lt;&lt;StripXML(__PRETTY_FUNCTION__)&lt;&lt;std::endl;. Функция...

Wchar_t
подключаюсь к серверу. Присваиваю переменной типа string имя, const char*...

3
avgoor
1007 / 601 / 156
Регистрация: 05.12.2015
Сообщений: 1,686
04.04.2016, 13:33 #2
Цитата Сообщение от Serg_o_Grey Посмотреть сообщение
unsigned wchar_t
В стандарте wchar_t не может быть signed/unsigned.
0
Serg_o_Grey
76 / 76 / 38
Регистрация: 29.03.2016
Сообщений: 350
04.04.2016, 15:40  [ТС] #3
avgoor, в стандарте может и нет, а у меня на Dev-C++ на винде позволяет так делать
и функция typeid(unsigned wchar_t).name() из <typeinfo> возвращает 'j', что аналогично unsigned int

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <typeinfo>
 
using namespace std; 
 
int main(int argc, char** argv) 
{
    cout << typeid(unsigned wchar_t).name() << endl;
    cout << typeid(unsigned int).name() << endl;
    return 0;
}
0
avgoor
1007 / 601 / 156
Регистрация: 05.12.2015
Сообщений: 1,686
04.04.2016, 15:59 #4
Цитата Сообщение от Serg_o_Grey Посмотреть сообщение
Вопрос1: используется ли unsigned wchar_t для хранения UNICODE-символов d windows?, и если да то..
Вопрос2: как будут размещаться байты при конвертировании char ('1') в unsigned wchar_t (00 00 00 31)?
Вопрос3: Почему эти 2 типа так отличаются?
1) unsigned wchar_t не используется для хранения UNICODE, т.к. нет никакого unsigned wchar_t.
Гарантируется, что wchar_t может содержать в себе самый широкий символ платформы. wchar_t используется для хранения символов и для арифметики он не предназначен, по этому он и не бывает знаковым/беззнаковым. (кстати, надеюсь, помните, что signed char, unsigned char и char - три разных типа из которых char предназначен для строковых операций, и про него нельзя сказать - знаковый он или нет).
2) Зависит от платформы. на x86 - wchar_t(0x00ff) в памяти разместится как {0xff, 0x00}
3) См п.1 - для гих ничего не гарантируется.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2016, 15:59
Привет! Вот еще темы с решениями:

wchar_t
что ето за тип данних: wchar_t скок у нему байт??

Чтение wchar_t
читаю из файла строку wchar_t символов, почему читается какая то хрень?

String to wchar_t
День всем добрый. Уже пролазил весь интернет, и ничего не понял. Вся надежда...

wchar_t to LPCWSTR
Ругается, что text является неинициализированной локальной переменной ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru