Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > в 1000 раз о кириллице в КОНСОЛИ |
Автор: slutsker 24.5.2007, 22:16 | ||
уважаемые и опытные программисты, я пытаюсь найти ответ на вопрос на многих форумах, но не могу найти, заранее прошу прощения (это наверно уже 100000 тема по поводу кириллицы, но мне кажется, что большую часть я из них уже прочел :shok ) при вводе функции chartooem, которая и упоминается во многих примерах вижу: пробовал много вариаций error C2664: 'CharToOemW' : cannot convert parameter 1 from 'char *' to 'LPCWSTR' (работаю в MS visual studio 2005) НАДОЕЛО УЖЕ ПИСАТЬ cout<<"vvedite 4islo"; вот один из привмеров, который я поьзовал
|
Автор: zkv 24.5.2007, 22:33 |
slutsker, убери юникод (Unicode) в настройках проекта. |
Автор: slutsker 24.5.2007, 22:50 |
zkv, не совсем понял, что именно надо сделать ![]() |
Автор: Fazil6 24.5.2007, 22:51 |
Project->Properties->Configuration Properties->Character Set = Use Multi-Byte Character Set |
Автор: Smarts 25.5.2007, 02:49 | ||
Странно, везде советуют убирать юникод... Реально, с юникод в NT системах программы работают быстрее, так как ApiA функции только конвертируют аргументы в юникод и вызывают соответствующие ApiW функции. Просто ставь букву L перед всеми строками, например так:
|
Автор: zkv 25.5.2007, 03:07 | ||
Smarts, если уж на то пошло, то лучше так:
тогда код не будет зависеть от настроек проекта. если человеку будет интересно узнать что такое юникод, то поиск выдаст ему вагон и маленькую тележку обсуждений, где этот самый юникод обсудили со всех сторон тыщу раз, а повторять одно и тоже напрягает, я предлагал создать и закрепить тему наподобие "Если у вас проблемы с VS2005", и там подробно описать тему с юникодом, потому что slutsker явно не последний кто столкнулся с этой фичей студии, а начинающих тоже понять можно, они ведь не знают, что надо искать темы по ключевому слову "Unicode", пока им не скажут об этом. |
Автор: Dronchik 25.5.2007, 09:34 | ||
|
Автор: Fazil6 25.5.2007, 09:40 |
ух ты!!! на С++.... !!! Надо будет запомнить... На бумажку перепишу себе.... Объяснишь как это к вопросу относится ? |
Автор: Ln78 25.5.2007, 14:39 | ||
Dronchik, мы сами когда-то тоже были пятиклассниками и понимаем, что такое эмоциональное восприятие окружающей действительности с возрастом проходит. Но и ты пойми, что когда взрослые дяди о чем-то беседует, не всегда следует вмешиваться в их разговор (в 3 года можно почти всегда, в 13, увы, уже нет). По поводу
посчитай, сколько у тебя буковок и достаточно ли ты отвёл для них места |
Автор: JackYF 25.5.2007, 16:46 |
+1 двум предыдущим авторам. Мощность и красота С++ состоят вовсе не в том, что мы заменяем printf/wprintf на cout << А printf и им подобные конструкции на С++ встречаются довольно часто. Иногда это просто удобнее, чем городить манипуляторы и чаще всего это будет и быстрее. Но это уже другой разговор. |
Автор: slutsker 25.5.2007, 16:51 |
Fazil6, спасибо, работает! |
Автор: Smarts 25.5.2007, 23:38 | ||||
О да, на С++, только твой код даже не скомпилится ![]() |
Автор: BigHeart 26.5.2007, 02:27 |
или используй функцию CharToOemW(...) (c теми же параметрами) |
Автор: Fazil6 26.5.2007, 08:13 |
хм... Использовать вместо чего? |
Автор: pograp 19.10.2007, 16:41 |
могу файл скинуть о Руссификации. |
Автор: Dronchik 20.10.2007, 17:21 | ||
Fazil6, Глупости после школы морожу уже ![]() по теме
И всё нормально потом русскими букавками выводит. |
Автор: Con 17.11.2007, 11:17 |
1 Установи локаль //Правильный вывод кириллицы wcout.imbue(locale(".866")); 2 И выводи русский текст wcout << L"Введите число галлонов: "; Пример #include <iostream> using namespace std; int main() { //Правильный вывод кириллицы wcout.imbue(locale(".866")); wcout << L"Введите число галлонов: "; return 0; } |