| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > В TurboC2.0 не могу написать на русском сообщение. |
| Автор: Hamid 24.2.2005, 03:19 |
| Пишу програмку на TurboC2.0, а сообщение printf на русском не пишется, только на английском, подскажите, пожалуйста, как написать его на русском! |
| Автор: chaos 24.2.2005, 08:55 |
| на сколько я знаю, это не от си зависит, а от винды |
| Автор: NiJazz 24.2.2005, 12:38 |
| Hamid В Win32API есть функция для обработки строки - CharToOem. В 16-разрядных средах вряд ли есть такие средства. |
| Автор: Unknown_Error 24.2.2005, 14:32 |
| Хм... Вообще то нужен руссификатор! |
| Автор: Hamid 24.2.2005, 16:43 | ||
У меня WindowsXP SP1 |
| Автор: chaos 24.2.2005, 17:07 | ||||
и че дальше что стоит, у меня тоже стояла и так же не работали рус буквы |
| Автор: Tripl-X 24.2.2005, 22:47 | ||||
| Borland C++ 5.2: 1. пишем функцию
2. Когда надо написать что-то:
3. Нельзя использовать более одного раза в одном printf 4. Надеюсь чем-нибудь помог... |
| Автор: Hroft 25.2.2005, 10:23 |
| Обалдеть. Tripl-X, ты что, сдуба рухнул, извини за выражение? Во-первых, ни о каком виндовсе вообще разговора нет, а во-вторых, КТО ЖЕ ВОЗВРАЩАЕТ ИЗ ФУНКЦИИ УКАЗАТЕЛЬ НА ЛОКАЛЬНУЮ НЕСТАТИЧЕСКУЮ ПЕРЕМЕННУЮ? Hamid: А вообще, такая же проблема и с паскалем 7.0, попробуй в качестве простого решения запускать из фара, в полном экране/в окне, а мож даже шрифт консоли в винде поменять. |
| Автор: Tripl-X 26.2.2005, 21:34 |
| Тогда самое простое - выучить английский и писать на нем (в printf) |
| Автор: chipset 27.2.2005, 08:21 | ||||||
В данном случае, не вижу ничего за что следовало бы расстреливать на месте. Приведи пример в котором эта функция не сработала бы. |
| Автор: Adil' 27.2.2005, 11:22 |
| chipset, какой такой пример - присмотрись внимательней: при выходе из ф-ции Rus массив char bufRus[255]; будет удален из стека - а мы возвращаем указатель на него. Так что Hroft прав, правда в несколько грубоватой форме... Добавлено @ 11:28 Hamid, а у тебя в консоли вообще хоть что-то по русски пишется? Набрать русский текст в консоли можешь? Или может просто не можешь переключиться на русский в шкуре турбо С? |
| Автор: chipset 27.2.2005, 11:42 | ||
На VC7.1 таким образом построенная функция выполняет свою задачу. Что предлагаете вы? Обьявить массив статически? |
| Автор: Дрон 27.2.2005, 13:50 | ||
chipset
Это тебе просто везёт Если вызвывать её непосредственно перед printf, то шансов на то, что она сработает много. Если же после её запуска повызывать всяких разных функций, чтобы попереписывать стек, то ничего хорошего не будет. Про такие вещи не стоит говорить, что, мол, у меня работает, значит всё нормально. |
| Автор: Adil' 27.2.2005, 15:48 | ||
|
| Автор: Hroft 28.2.2005, 09:49 |
| Sorry за выражение, но просто такая ошибка... Слов нет. Я в таких случаях либо пользую std::string, либо, раз его нету, действительно сделал бы массив статическим в функции или даже глобальным в модуле, а то и во всей программе через специальный заголовок. Тогда можно было бы не только сразу после вызова Rus пользовать его, а и вплоть до следующего, навроде errno и GetLastError() |
| Автор: Гость_Владимир 1.3.2005, 14:36 |
| Попробуйте для набора текста исходника использовать редактор Ultraedit или MED. Там можно поставить галочку в настройках " OEM Character Set" и, если я правильно понял проблему, все сообщения в консоли будут по-русски. Возможно, придется выбрать шрифт Terminal. |
| Автор: Hamid 2.3.2005, 02:39 |
| Спасибо большое за внимание всем и за участие!!!!! Я попробовал из командной строки запустить утилитку KEYRUS.COM, а затем запустить TC.EXE. Теперь могу переключаться на русский, нажав Shift+Ctrl, а затем (обязательно) нажимаю справа Shift+Alt. Правда приходится секунды три-четыре ждать, пока переключиться. Потом также переключаюсь на английский. А если без командной строки запускаю TC.EXE (и без запуска KEYRUS.COM), то на русский переключаюсь (даже быстрее, чем в предыдущем случае), но обратно на английский перейти не могу (никакие сочетания клавиш, которые переключают языки не помогают). |
| Автор: Hroft 2.3.2005, 11:40 |
| Тоже решение. Основано на эмуляции доса, ну так и tc.exe - досовская. |
| Автор: Chudik 3.3.2005, 19:28 |
| Вообщем если кому то надо чтобы еще писал на русском то по tc у меня есть 2 файла которые кидаешь в глав. директорию и валя,есть русский язык.Если наджо стучи в ICQ:136115618 |