Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

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

 

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

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

тема: Кириллица в консольном приложении
 
 автор: winflip   (28.03.2009 в 15:23)   письмо автору
 
 

Здравствуйте, скажите пожалуйста, как сделать нормальное отображение кириллицы в консольном приложении?

  Ответить  
 
 автор: ddhvvn   (29.03.2009 в 22:38)   письмо автору
 
   для: winflip   (28.03.2009 в 15:23)
 

Перевести выводимый текст из win-1251 в DOS-кодировку (я не помню точно, что-то вроде CP866)

  Ответить  
 
 автор: GeorgeIV   (30.03.2009 в 11:04)   письмо автору
 
   для: winflip   (28.03.2009 в 15:23)
 

#include <stdio.h>
#include "locale.h"
#include "iostream"


int main(int argc, char* argv[])
{
setlocale(LC_ALL,"Russian");
std::cout << "Тест вывода" << std::endl;
    system("Pause");
return 0;
}

  Ответить  
 
 автор: den_teacher   (31.03.2009 в 09:31)   письмо автору
 
   для: winflip   (28.03.2009 в 15:23)
 

Нужно прикрепить к проекту декодер символов. Скинь ящик, выложу два класса для работы с кириллицей.

  Ответить  
 
 автор: StaFox   (04.04.2009 в 01:29)   письмо автору
 
   для: winflip   (28.03.2009 в 15:23)
 


#include "iostream.h"
#include "windows.h"
...
charRus(const char* text);
char bufRus[256];
charRus(const char* text) {
CharToOem(text, bufRus);
return bufRus;
}
...
void main() {
cout << Rus("Ваш текст") << endl; 
}

  Ответить  
 
 автор: Князев   (03.05.2009 в 23:21)   письмо автору
 
   для: winflip   (28.03.2009 в 15:23)
 

Используй функцию:
char* rus(char* st)
{
unsigned char* p=st;
while (*p)
{
if (*p==184) {*p=241; p++; continue;}
if (*p==168) {*p=240; p++; continue;}
if (*p>=192)
if (*p<=239)
*p-=64;
else
*p-=16;
p++;
}
return st;
}
Она меняет кодировку ANSI в ANCII, которая используется в DOS.
Пример:
cout >> rus("Привет мир!") >> endl;

  Ответить  
 
 автор: GeorgeIV   (04.05.2009 в 10:30)   письмо автору
 
   для: Князев   (03.05.2009 в 23:21)
 

Я на вас удивляюсь! А просто установить локаль без извращений вера не позволяет?

  Ответить  
 
 автор: Князев   (04.05.2009 в 23:10)   письмо автору
 
   для: GeorgeIV   (04.05.2009 в 10:30)
 

Ум не позволяет!!!!!!!!!!!!!!

  Ответить  
 
 автор: evsey   (27.08.2009 в 11:04)   письмо автору
 
   для: winflip   (28.03.2009 в 15:23)
 

#include <iostream>
using namespace std;
int main() {

   settlocale(LC_CTYPE, "Russian");
   cout << "Здравствуйте всем!\n";

   system ("Pause");
   return 0;
}

  Ответить  
 
 автор: GeorgeIV   (27.08.2009 в 18:10)   письмо автору
 
   для: evsey   (27.08.2009 в 11:04)
 

   settlocale(LC_CTYPE, "Russian");


только не давайте ошибочных советов! Проверяйте, что пишите, тем более что выше уже был пример

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

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