|
|
|
| Здравствуйте, скажите пожалуйста, как сделать нормальное отображение кириллицы в консольном приложении? | |
|
|
|
|
|
|
|
для: winflip
(28.03.2009 в 15:23)
| | Перевести выводимый текст из win-1251 в DOS-кодировку (я не помню точно, что-то вроде CP866) | |
|
|
|
|
|
|
|
для: 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;
} |
| |
|
|
|
|
|
|
|
для: winflip
(28.03.2009 в 15:23)
| | Нужно прикрепить к проекту декодер символов. Скинь ящик, выложу два класса для работы с кириллицей. | |
|
|
|
|
|
|
|
для: winflip
(28.03.2009 в 15:23)
| |
#include "iostream.h"
#include "windows.h"
...
char* Rus(const char* text);
char bufRus[256];
char* Rus(const char* text) {
CharToOem(text, bufRus);
return bufRus;
}
...
void main() {
cout << Rus("Ваш текст") << endl;
}
|
| |
|
|
|
|
|
|
|
для: 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; | |
|
|
|
|
|
|
|
для: Князев
(03.05.2009 в 23:21)
| | Я на вас удивляюсь! А просто установить локаль без извращений вера не позволяет? | |
|
|
|
|
|
|
|
для: GeorgeIV
(04.05.2009 в 10:30)
| | Ум не позволяет!!!!!!!!!!!!!! | |
|
|
|
|
|
|
|
для: winflip
(28.03.2009 в 15:23)
| | #include <iostream>
using namespace std;
int main() {
settlocale(LC_CTYPE, "Russian");
cout << "Здравствуйте всем!\n";
system ("Pause");
return 0;
} |
| |
|
|
|
|
|
|
|
для: evsey
(27.08.2009 в 11:04)
| | settlocale(LC_CTYPE, "Russian"); |
только не давайте ошибочных советов! Проверяйте, что пишите, тем более что выше уже был пример | |
|
|
|