Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2015, 17:01   #11
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от 220Volt Посмотреть сообщение
так и не сочли нужным решить проблему с кодировкой консоли (utf консоль)
chcp 65001
разве нет?

И кстати проблема не столько в приоритетах, сколько в обратной совместимости консольных приложений.
waleri вне форума Ответить с цитированием
Старый 27.07.2015, 17:08   #12
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

system принимает вроде только char*, не могу найти ее для wchar_t*
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 27.07.2015, 17:42   #13
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 671
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
chcp 65001
разве нет?

И кстати проблема не столько в приоритетах, сколько в обратной совместимости консольных приложений.
Возможно. О win осталось воспоминание - бардак с кодировками - консоль в одной, MSVC принимает cp1251, в системе utf-16/cp1251. Возможно в чём-то не разобрался.

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
system принимает вроде только char*, не могу найти ее для wchar_t*
http://local.joelonsoftware.com/wiki...BB%D0%BE%D0%B2
Это к тому, что wchar_t это воообще не о юникоде (если я вас правильно понял). Статья шикарная.
220Volt вне форума Ответить с цитированием
Старый 27.07.2015, 19:15   #14
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

wchar_t это тип данных на 2 байта, в него можно записать и другие данные, но в данном случае речь идет именно о юникоде.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 27.07.2015, 23:48   #15
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 671
По умолчанию

Не она?
Код:
int wsystem(const wchar_t *cmd)   { return std::system((const char*)cmd); }
Только толку от неё как и от wcout. Как подметил waleri, кодировку консоли можно менять, поэтому можно попробовать chcp 65001 и шрифт Lucida console, а пототом:
Код:
std::system(u8"text");
220Volt вне форума Ответить с цитированием
Старый 28.07.2015, 01:17   #16
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
wchar_t это тип данных на 2 байта
Кто Вам такое сказал? Размер wchar_t - implementation-defined.
http://rextester.com/IBUF41228
http://rextester.com/UHTB55977
Croessmah вне форума Ответить с цитированием
Старый 28.07.2015, 02:01   #17
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Размер wchar_t - implementation-defined.
Спасибо, буду знать, никогда не обращал на это внимание.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 28.07.2015, 02:11   #18
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 671
По умолчанию

Цитата:
Сообщение от 220Volt Посмотреть сообщение
Не она?
Код:
int wsystem(const wchar_t *cmd)   { return std::system((const char*)cmd); }
Однозначно невалидный способ. Размер строки определится неверно, нижележащая api вызовется криво.
220Volt вне форума Ответить с цитированием
Старый 28.07.2015, 02:19   #19
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Тогда уж точно проще использовать функцию ShellExecuteW, и чтоб не было проблем с типом wchar_t, использовать WCHAR.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

Последний раз редактировалось Krasiosoft; 28.07.2015 в 02:26.
Krasiosoft вне форума Ответить с цитированием
Старый 28.07.2015, 12:15   #20
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от 220Volt Посмотреть сообщение
Ну зачем же лишний раз дёргать api оси, есть библиотечная int system( const char *command ).
http://en.cppreference.com/w/cpp/utility/program/system. Если Си http://en.cppreference.com/w/c/program/system. command - обычная шел команда.
у неё множество ограничений.
и она в конечном счете дернет тоже самое апи.

тобишь, это просто посредник,
годный только в самых простых случаях.
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консольное приложение TRANE82 Помощь студентам 16 15.12.2012 23:03
консольное приложение unbanned Общие вопросы Delphi 12 01.11.2011 15:25
Консольное ли приложение? Сtrl Visual C++ 1 11.04.2011 11:36
Консольное приложение Lag Общие вопросы C/C++ 3 05.05.2010 08:02
Консольное приложение MAcK Общие вопросы Delphi 2 03.12.2006 18:28