Форум: Форум C++Разное
Новые темы: 00
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Русский тескт :(
 
 автор: DEM   (27.12.2006 в 11:51)   письмо автору
 
 

Когда ввожу например:

cout << "\n Two chislo: ";

То выводится нормальный транслит :)

А если ввожу:

cout << "\n Второе число: ";

То ввыводится, что-то страшное... постаршнее транслита и русских букв, какие-то палочки и прочее..

  Ответить  
 
 автор: Mehelson   (27.12.2006 в 12:01)   письмо автору
 
   для: DEM   (27.12.2006 в 11:51)
 

там если мне не изменяет память вывод в ОЕМ... где то был у меня конвертер...поищу - выложу... ну а вобще он идет с поставке Borland C++ 5.02

  Ответить  
 
 автор: cheops   (27.12.2006 в 12:10)   письмо автору
 
   для: DEM   (27.12.2006 в 11:51)
 

Командная строка имеет по умолчанию кодировку cp866 (DOS), а текст у вас набран скорее всего в кодировке cp1251 (Windows). Поэтому нужно менять кодировку, либо командной строки
chcp 1251

либо русского текста в программе.

  Ответить  
 
 автор: Krasnodar   (27.12.2006 в 23:09)   письмо автору
 
   для: cheops   (27.12.2006 в 12:10)
 

Вот я пользуюсь Borland C++ 5.02, но когда ввожу русские буквы, текст выделяется красным и пишутся какие-то иероглифы, при запуске тоже.... как поменять кодировку?

  Ответить  
 
 автор: Саня   (13.01.2007 в 23:38)   письмо автору
3.7 Кб
 
   для: cheops   (27.12.2006 в 12:10)
 

Не помогает.

  Ответить  
 
 автор: cheops   (13.01.2007 в 23:44)   письмо автору
 
   для: Саня   (13.01.2007 в 23:38)
 

В свойствах окна выберите шрифт Lucida Console вместо точечных шрифтов.

  Ответить  
 
 автор: Саня   (13.01.2007 в 23:47)   письмо автору
 
   для: cheops   (13.01.2007 в 23:44)
 

О, да, сработало. Спасибо.

  Ответить  
 
 автор: fs444   (25.09.2009 в 13:16)   письмо автору
 
   для: Саня   (13.01.2007 в 23:47)
 

Я создал консольное приложение в С++ Builder. Код

int main(int NumberofArgs, char*pszArgs[])
{
 cout << "Привет, Мир!";
}

выводится крякозябрами. Почитал тему и возникли следующие вопросы:
1) Что такое "вывод в OEM"?
2) "там если мне не изменяет память вывод в ОЕМ... где то был у меня конвертер" - этот конвертер будет преобразовывать кодировку, я так понял? Где он будет ее преобразовывать?
"Командная строка имеет по умолчанию кодировку cp866 (DOS), а текст у вас набран скорее всего в кодировке cp1251 (Windows). Поэтому нужно менять кодировку, либо командной строки
chcp 1251
либо русского текста в программе." - расскажите по-подробнее, куда прописывать chcp 1251 и как поменять русский текст в программе?

Я поставил в билдере шрифт Licuda Console, но крякозябры все равно выводятся. По этой статье http://www.rsdn.ru/article/qna/ui/concp.xml я пытался исправить кодировку раскладки клавиатуры на DOS-CP866 программой RusLat, но я не нашел в ней нужный настроек.

Так же пробовал вставлять сразу после int main(int NumberofArgs, char*pszArgs[]) { функции SetConsoleCP(1251) и SetConsoleOutCP(1251) - не помогло.

  Ответить  
 
 автор: cheops   (25.09.2009 в 13:23)   письмо автору
 
   для: fs444   (25.09.2009 в 13:16)
 

А вы кодировку консольного окна прямо в программе измените. Попробуйте выполнить следующий код.
int main(int NumberofArgs, char*pszArgs[])
{
  system("chcp 1251");
  cout << "Привет, Мир!";
}

  Ответить  
 
 автор: fs444   (25.09.2009 в 13:49)   письмо автору
 
   для: cheops   (25.09.2009 в 13:23)
 

Не исправляет. Самое интересное, пишет "[крякозябры]: 1251"

  Ответить  
 
 автор: fs444   (29.09.2009 в 09:09)   письмо автору
 
   для: fs444   (25.09.2009 в 13:49)
 

Я сделал так:
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
int main(int args, char* pszArgs[])
{
 system("chcp 1251");
 cout << "Здравствуй, Мир!"
 system("pause");
}

К тому же в свойствах консоли установил шрифт Lucuida Console. Теперь русские буквы выводит прекрасно.

А вот так написать грамотно?
#include <stdio.h>
#include <iostream.h>
#include "windows.h"

int rustext(char str[])
{
CharToOem(str,str);
cout << str;
}

int main(int argc, char* argv[])
{
    rustext("Всем привет\n");
    system("pause");
    return 0;
}

Консоль руками настраивать не приходится. Все делает ф-ция CharToOem.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования