Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как включить поддержку кириллицы??? Копмилятор borland c++ 5.5 
:(
    Опции темы
WebXL
Дата 14.1.2005, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.1.2005

Репутация: нет
Всего: нет



Компилирую файл с кодом
--------
#include<iostream>
#include<stdio.h>

using namespace std;

void main()
{
cout<<"Привет!";
while(1);
}
---------

А в место "Привет!" выводятся непонятные символы, тогда как если написать "Hello!" то и выводится "Hello!".

Подскажите, пожалуйста, как включить поддержку кириллицы???
PM MAIL   Вверх
Adil'
Дата 14.1.2005, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 26.8.2004
Где: Питер

Репутация: 6
Всего: 15



Поддержка кирилици здесь не причем, просто у тебя консольное приложение, в котором используется DOS-кодировка символов, а в редакторе - Win1251
Можно использовать CharToOem и OemToChar
А можно сразу писАть cout<<"╧ЁштхЄ!"; smile


--------------------
Удачи
PM MAIL WWW   Вверх
Dov
Дата 14.1.2005, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



W2K. VC++6.0
У меня так работает:
Код

#include <windows.h>
void main()
{
   SetConsoleOutputCP(1251);
   ...
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
WebXL
Дата 14.1.2005, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.1.2005

Репутация: нет
Всего: нет



Цитата(Adil @ 14.1.2005, 13:03)
Поддержка кирилици здесь не причем, просто у тебя консольное приложение, в котором используется DOS-кодировка символов, а в редакторе - Win1251
Можно использовать CharToOem и OemToChar
А можно сразу писАть cout<<"╧ЁштхЄ!"; smile

Спасибо!
Во всем разобрался. Извините, за глупую тему (но ведь я не первый и не последний чайник, на этом форуме уже есть такая тема, но там этого ответа так и не прозвучало :-)
Добавлено @ 15:20
Цитата(Dov @ 14.1.2005, 15:10)
W2K. VC++6.0
У меня так работает:
Код

#include <windows.h>
void main()
{
   SetConsoleOutputCP(1251);
   ...
}

А этот код к сожалению не заработал - ни ошибок - ни изменений, по прежнему другая кодировка.

Я нашел рабочий код:

Код

Данный пример иллюстрирует вывод русских строк в консоль через стандартный поток вывода.

Для этого нужно подключить "windows.h". Функция CharToOem выполняет преобразование.

Вот её синтаксис:

CharToOem(char * source, char * dest);

Первым параметром передаётся строка-источник, вторым - приёмник.

Преобразование нужно проводить только для вывода, для вывода в файл это делать не нужно.

-----------------------------------------------------------------------------------------

Автор примера: А. Зимин

E-Mail: [email protected]

URL: http://heavysoft.narod.ru

Программирование на C,C++,Visual C++, Blitz Basic. Статьи. Исходные коды.

- это всё найдёте на сайте.

*/

#include <iostream.h>

#include <fstream.h>

#include <windows.h> //нужна для функции CharToOem

void ConOut(char * str);

void FileOut(char * fname, char * str);

void main()

{

char string[]="Теперь консоль говорит по-русски!";

ConOut(string);

ConOut("\nCopyright (C) 2004 Heavysoft\nзаходите на наш сайт:\nhttp://heavysoft.narod.ru");

FileOut("Test.txt",string);

cin.get();

}

void ConOut(char * str)

{

char * buf=new char[strlen(str)];

CharToOem(str, buf); //преобразование

cout<<buf<<endl;

}

void FileOut(char * fname, char * str)

{

ofstream file(fname);

file<<str<<endl; //выводим в файл - преобразования не выполняем

}

PM MAIL   Вверх
Tripl-X
Дата 24.1.2005, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 29.12.2004

Репутация: 1
Всего: 1



Попробуй печатать в шестнадцатеричном предстаклении...smile

Добавлено @ 23:42
Ошибочка...smile представлении
PM MAIL ICQ   Вверх
Adil'
Дата 25.1.2005, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 26.8.2004
Где: Питер

Репутация: 6
Всего: 15



Цитата(WebXL @ 14.1.2005, 15:11)
Код
void ConOut(char * str)

{

char * buf=new char[strlen(str)];

CharToOem(str, buf); //преобразование

cout<<buf<<endl;

}
Мда, вот те, бабушка, и Юрьев день... И такие исходники выкладываются как пример для подражания?...
Кто память-то освобождать будет? А.С.Пушкин? А место под 0-терминатор?
Код
void ConOut(char * str)
{
char * buf=new char[strlen(str)+1]; //"сишная длина" строки на 1 байт больше, чем strlen!
CharToOem(str, buf); //преобразование
cout<<buf<<endl;
delete[] buf;// Даёшь каждому new свой delete!
}


Это сообщение отредактировал(а) Adil' - 25.1.2005, 12:44


--------------------
Удачи
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0643 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.