Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Кирилица в консоли

Ответить
Настройки темы
C/C++ - Кирилица в консоли

Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Drongo
Дата: 03-02-2009
Описание: Чтобы тема не разросталась. Оформлю надлежащим образом...
Как сделать, чтобы консольные проги, написанные на С++, понимали русский... Я вообще новичок в программинге, можно по подробней??? Заранее спасибо!

-------
Единственный способ изучить новую программу-пользоваться ей как можно чаще... (с)YackoN.


Отправлено: 11:02, 25-12-2003

 

Аватара для Guest

Guest


Профиль | Цитировать


from Xwine :locale.h тебе поможет

from Xwine
ну так открой "Дейтла и Дейтла" там подробно описано какие функции использовать и какие значения задавать .

Последний раз редактировалось Drongo, 03-02-2009 в 10:29. Причина: два сообщения подряд.


Отправлено: 15:33, 25-12-2003 | #2



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

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


Пользователь


Сообщения: 135
Благодарности: 0

Профиль | Отправить PM | Цитировать


YackoN

Есть такая функция в мастае CharToOem()
Поищи в WinAPI.

Перед выводом на консоль обработай строку этой функцией
Она конвертнет Win->Dos. И на экране все будет по русски а не по китайски.

А вообще-то где-то на этом форуме уже это было.
Удачи!


Отправлено: 02:51, 26-12-2003 | #3


Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Cпасибо!

-------
Единственный способ изучить новую программу-пользоваться ей как можно чаще... (с)YackoN.


Отправлено: 11:20, 26-12-2003 | #4

exdocent


Сообщения: n/a

Профиль | Цитировать


YackoN
Если имеется в виду текст на русском языке, то нужно сделать следующее:
Во-первых нужно создать заголовочный файл
Код: Выделить весь код
#include <windows.h>
Во-вторых сменить кодировку. Для этого в коде программы ввести
Код: Выделить весь код
SetConsoleOutputCP(1251);
В-третьих настроить консоль. Для этого нужно щелкнуть правой кнопкой по верхней части консоли. В открывшемся меню выбрать "свойства", затем на вкладке "шрифт" выбрить Lucida Console

Последний раз редактировалось Drongo, 03-02-2009 в 10:30.


Отправлено: 18:06, 31-12-2003 | #5

ezdefighter


Сообщения: n/a

Профиль | Цитировать


Как сделать так, чтобы в консольных приложениях отображалась кириллица?

Отправлено: 10:20, 16-12-2004 | #6


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Можно использовать WinAPI функцию CharToOem():
Цитата:
CharToOem......Windows 95 Windows NT

Description
CharToOem translates a string from the character set of the current locale to an OEM-defined character set. If a character exists in the OEM character set, the character is used; otherwise, the nearest equivalent is selected.
Syntax
BOOL CharToOem( LPCTSTR lpszSource, LPSTR lpszDest )
Parameters
lpszSource
LPCTSTR: A pointer to a null-terminated string of the current character set.
lpszDest
LPSTR: A pointer to destination buffer to receive the OEM-based string. This buffer may be the same address as lpszSource, in which case the translation is performed in place. This cannot be done if using the wide-character version of this function.
Returns
BOOL: Always returns TRUE.
Include File
winuser.h
See Also
CharToOemBuff, OemToChar
Пример на C:
Код: Выделить весь код
#include <windows.h>
#include <stdio.h>

void main()
{
	char src[10];
	char dest[10];
	strcpy(src,"Привет");
	CharToOem(src,dest);
	printf(dest);
}
или же написать собственную процедуру перекодировки

Отправлено: 12:00, 16-12-2004 | #7


Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Рискну предположить что такое прокатит:

Код: Выделить весь код
uses Windows;
 
function Win2Oem (S: String) : String;
begin
   CharToOem(PChar(S),PChar(Result));
end;

Последний раз редактировалось Savant, 18-12-2004 в 19:26. Причина: опечатка в коде


Отправлено: 19:24, 18-12-2004 | #8


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Простите, если такой вопрос уже был, но все-таки: как сделать чтобы Visual C++ 6.0 выводил нормальный русские буквы, а не "крякозяблы"?

Отправлено: 13:42, 20-01-2005 | #9


Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Если Вы про консольный режим, то:
1. Откройте исходник
2. File -> Advanced Save Options -> Encoding -> Cyrillic (DOS) - Codepage 866

Правда у меня VS.NET, но я думаю, что эти же опции (или подобные) должны быть и у Вас

Отправлено: 13:55, 20-01-2005 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Кирилица в консоли

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Кирилица на DVD Guest Хочу все знать 3 08-05-2004 14:59
Кирилица и ересь bdn Microsoft Windows 95/98/Me (архив) 3 20-01-2004 14:02
странная кирилица dreamparadise Программирование и базы данных 2 28-07-2003 12:33
Кирилица в прогах Alex VZ Общий по Linux 20 19-07-2003 17:09
Кирилица и Сидиром Pink Punk Общий по Linux 11 14-03-2003 06:03




 
Переход