Werti |
Отправлено: 04.12.2005, 00:06 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 30
|
отображение русского текста.
попросту говоря поддержка отобьражения нормальной кодировки просто никак не воткну где и сматреть то. |
|
Георгий |
Отправлено: 04.12.2005, 02:51 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
в DOS 866 кодировка
а в windows 1251
т.к. прогу ты пишешь используя виндусовый редактор, то русский язык в ней тоже пишется в 1251 кодировке и перед выводом на консоль неплохобы выполнить перекодировку или сразу писать в 866 кодировке
Отредактировано Георгий — 04/12/2005, 03:52 |
|
GIZMO |
Отправлено: 04.12.2005, 19:28 |
|
Машинист паровоза
Группа: Участник
Сообщений: 174
|
QUOTE (Werti @ 04/12/2005, 00:06) | отображение русского текста.
попросту говоря поддержка отобьражения нормальной кодировки просто никак не воткну где и сматреть то. |
CODE | //---------------------------------------------------------------------------
#define VCL_IOSTREAM
#include <vcl.h>
#include <condefs.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#pragma hdrstop
#include "FormFromConsole.h"
USEFORM("FormFromConsole.cpp", Form1);
//---------------------------------------------------------------------------
String coutRus(String Text)
{
String Result;
int TextLen = Text.Length();
char* Buffer = new char[TextLen];
CharToOem(Text.c_str(), Buffer);
Result = Buffer;
delete Buffer;
return Result;
}
#pragma argsused
int main(int argc, char* argv[])
{
char title[256] = "";
char className[20] = "";
//SetConsoleOutputCP(1251); — не работает?
GetModuleFileName(0, title, sizeof(title));
TOSVersionInfo info;
info.dwOSVersionInfoSize = sizeof(info);
GetVersionEx(&info);
int platform = info.dwPlatformId;
if (platform == VER_PLATFORM_WIN32_NT) //NT
strcpy(className, "ConsoleWindowClass");
else {//Windows 95
strcpy(className, "tty");
String name = title;
int pos = name.LastDelimiter("\\" );
name = name.SubString(++pos, name.Length());
name = name.SubString(1, name.Length() — 4);
strcpy(title, name.c_str());
}
HWND hWnd = FindWindow(className, title);
bool done = false;
do {
clrscr();
cout << coutRus("Введите команду...");
cout << endl;
int choice;
choice = getch();
choice -= 48;
while(choice < -1 || choice > 1) {
clrscr();
cout << endl;
cout << coutRus("Список команд...");
cout << endl;
cout << coutRus("0. Завершение работы");
cout << endl;
cout << coutRus("1. Вызов формы");
cout << endl;
choice = getch();
...
|
|
|
agisland |
Отправлено: 05.12.2005, 04:10 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 14
|
Всё просто. пиши русский текст в Far редакторе например |
|
AVC |
Отправлено: 05.12.2005, 11:15 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
CharToOem
Вот дублирую свой ответ по такому же вопросу (извиняюсь за ленивость)
CODE |
сделал этот пример в Builder
File -> New -> Console_Wizard -> Ok
А вот полный текст работающего примера
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include<iostream>
int main(int argc, char* argv[])
{
using namespace std;
int i;
char *test = "фыва Пролджэ";
CharToOem(test, test);
cout << test << endl;
cin >> i;
return 0;
}
//---------------------------------------------------------------------------
| |
|