Помощь - Поиск - Пользователи - Календарь
Полная версия: c++ builder 2007 русская кодировка под консолью
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Rian
вопрос как в билдере под консолью сделать нормальные русские буквы?

на паскаль например типа библиотеки ставилось и все норм читалось.... а тут? как?
volvo
Почему вместо русских букв в консольном приложении выводится мусор?
(ключевое слово CharToOem присутствует)
Rian
sad.gif неудобно.... использовать винапи? а как тогда в других системах пишут?

может другой компилер использовать?
TarasBer
> неудобно.... использовать винапи? а как тогда в других системах пишут?

В других системах через ВинАПИ пишут вообще всё, радуйся, что формы можно мышкой рисовать.
Rian
Цитата(TarasBer @ 9.11.2010 13:14) *

> неудобно.... использовать винапи? а как тогда в других системах пишут?

В других системах через ВинАПИ пишут вообще всё, радуйся, что формы можно мышкой рисовать.

это в юниксах что ли? или они тоже библиотеку подключают?
мне не надо формы мне консоль голая и всё
TarasBer
А, в других операционках. Я думал, в других средах программирования.
Тебе нужна именно кроссплатформенность?
volvo
Цитата
Тебе нужна именно кроссплатформенность?
Самый тот случай, для кроссплатформы использовать C++ Builder.

P.S. Про Юникод что, только избранные знают? Современные компиляторы С++ прекрасно работают с Юникодом (wcout или wprintf)
Гость
Цитата(volvo @ 9.11.2010 14:54) *

Самый тот случай, для кроссплатформы использовать C++ Builder.

P.S. Про Юникод что, только избранные знают? Современные компиляторы С++ прекрасно работают с Юникодом (wcout или wprintf)


кстати не стала это функция работать(( к ней еще чево то надо?

...мне нужно например ввести в прогу подобный код


#include <stdio.h>
void main()
{int Year;
printf("Сколько лет Коле ");
scanf("%d",&Year);
printf("Коле %d лет \n",Year);
}



"проверить" что он работает... как это можно сделать?
если не билдер, тогда чем?
volvo
Цитата
кстати не стала это функция работать((
Ну, не знаю, у меня wcout под GCC работает на ура. Причем как под Windows (правда для этого придется использовать STLPort, некоторые стандартные вещи из-под MinGW не хотят работать, юникодные потоки - в их числе), так и на Lenny (это Debian 5, если кто не в курсе).
Rian
блин.... танцы с бубном.... вместо приведения типов, приводим кодировки (((((( norespect.gif
Rian
...скачал c++ builder 3.1 и к нему прогу KEYRUS...
есть русские буквы.... но это же все равно не солидно... к тому же эмулятор прихрамывает
в стандартном мышка не работает
dos box иногда подвисает и шрифт сильно мелкий (не знаю настраивается ли)

ну почему win32 нельзя настроить?
volvo
Настроить на что? Чтоб он брал буквы в кодировке Win1251 и переводил их в OEM? Тебе сказали, как это настроить. Ты говоришь "неудобно". Всем удобно (Win32 настраивать через WinAPI - внезапно, да? Не ожидаешь никогда, что взбредет на ум программистам из MS - надо же было додуматься, настройку программ под Win делать через WinAPI... dry.gif ), тебе нет. Ну, так делай так как ТЕБЕ удобно. А КАК это - это у себя спроси, я не телепат. В WinAPI БОЛЕЕ ЧЕМ достаточно средств для решения данной задачи. К тому же я тебе привел пример использования юникодных потоков, которые ко всему еще и кроссплатформенны. Опять неудобно? Ну, извини, что в компиляторах нет режима ForRianOnly.
Rian
дописывать в каждую прогу огромную кусмятину кода?
использовать "конвертер" кодировок fromTo
переписывать все функции в каждом примере? (которая кстати не работала, не знаю почему)

blink.gif это удобно? арррр...
keyrus мне в помощ и DOS forever
TarasBer
Что огромного-то? Напиши свою обёртку, которая конвертирует не char*, а принимает нормальную строку и возвращает нормальную строку, и вместо cout << s пиши cout << mycoolfunc(s)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.