| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Вывод русских символов в консоль |
| Автор: Mastodont 31.3.2010, 19:14 | ||||||||||||
Чтобы выводить русские буквы в консоли, написал функцию rustext()
Но компилятор ругается
return может использоваться только в int-функции?
Почему константа? ведь слова const я нигде не ставил. Наверное, "*" несет еще какуюто смысловую нагрузку?
Suspicious pointer conversion - подозрительный указатель преобразования, как я понял. Что это означает?
А здесь он что пытается преобразовать?
Несовпадение типа в параметре 'str'. А почему несовпадение? Везде ж char. Или здесь что-то другое имеется в виду? Может, есть более удачный вариант решения моего вопроса? |
| Автор: KelTron 31.3.2010, 19:23 | ||||
Можно и без буффера:
|
| Автор: ИванМ 31.3.2010, 19:28 | ||
так нельзя делать. buffer локальный массив. |
| Автор: KelTron 31.3.2010, 19:41 | ||
Ты прав, я на это не обратил внимания... Добавлено через 11 минут и 57 секунд Что то я уже сплю, оба варианта некорректны, вот правильный:
|
| Автор: borisbn 31.3.2010, 20:07 |
| http://msdn.microsoft.com/ru-ru/library/x99tb11d.aspx тема уже тысячу раз обсуждалась |
| Автор: ИванМ 31.3.2010, 20:11 |
| borisbn, setlocale в билдере не работает. По крайней мере, в 6м. |
| Автор: borisbn 31.3.2010, 21:23 |
| ИванМ, как бы сказал Якубович: код в студию P.S. под студией имеется ввиду не visual studio, а vingrad на p.s. просьба не отвечать - шутю я так P.P.S. В каждой шутке есть доля шутки |
| Автор: ИванМ 31.3.2010, 21:55 |
| borisbn, имеете ввиду показать как я пишу setlocale? Или показать как работает перекодировка в билдере? |
| Автор: borisbn 31.3.2010, 22:11 |
| ИванМ, конечно первое |
| Автор: ИванМ 31.3.2010, 22:15 |
| ну например: setlocale(LC_ALL, "Russian.1251") setlocale(LC_ALL, "Russian_Russia.1251") setlocale(LC_ALL, ".1251") setlocale(LC_ALL, "Russian") |
| Автор: borisbn 1.4.2010, 08:59 | ||||
ИванМ, bag your pardon, прошлый пост писал дома (там builder не установлен). сейчас проверил - не работает setlocale, причём GetLastError возвращает ERROR_ENVVAR_NOT_FOUND (The system could not find the environment option that was entered). Может для builder'а нужно какие-то environment переменные завести ?
выдаёт следующее:
|
| Автор: mrbrooks 1.4.2010, 09:04 |
| Сам вопрос боянистей не куда. Вплоть до 2009 - Билдер относился как к setlocale, так и к более кошерному std::locale, сугубо отрицательно. Хотя грешить только на Билдер не стоит - многие компиляторы без бубна так же оказываются так запросто выводить русский язык. Хотя в студии вопрос решается на ура. |
| Автор: DCamer 1.4.2010, 12:15 |
| http://forum.vingrad.ru/forum/topic-295469.html |
| Автор: ИванМ 1.4.2010, 15:34 |
| В студии тоже не все ура. Ставишь локаль, он работает нормально на вывод и в консоль и в файл. Но если например ввести русское слово и его потом попытаться вывести, то опять будут крокозябры. Но, я думаю, тут дело скорее в самой винде. По другому никак. |