PDA

Показать полную графическую версию : Кирилица в консоли


Страниц : 1 [2] 3 4 5

Durson
05-10-2008, 21:25
Вро де бы нет, проверь?

ну что никто ещё не проверил? )

Admiral
05-10-2008, 21:51
Durson, прога библиотеку не спросила. Что за DLLка такая?

Drongo
05-10-2008, 21:53
Durson, Нормально, кирилица работает. Конечно выкладывай, не мне так другим поможешь. Это значит ты пишешь в коде:

...
cout<<"Привет мир, добро пожаловать в мир программирования С++"<<endl;
...И всё? Больше ничего не надо? А есть такая библиотека для Borland C++Builder 6.0 :)

Durson
05-10-2008, 21:54
Блин не библиотечный файл а заголовочный. :)

Durson
05-10-2008, 21:58
И всё? Больше ничего не надо? А есть такая библиотека для Borland C++Builder 6.0 »
А эта для Microsoft Visual C++.
Выкладываю

Drongo
05-10-2008, 22:02
Durson, У меня такое предупреждение выдаёт:
[C++ Предупреждение] rus.h(6): W8058 Cannot create pre-compiled header: initialized data in headerЯ что-то не так делаю?

Admiral
05-10-2008, 22:08
Durson, такой файл можно написать прямо в посте, что б его и гости форума видели
#include <iostream.h>
#include <windows.h>
char* Rus1(const char* text);


char bufRus[256];
char* Rus1(const char* text){
CharToOem(text, bufRus);
return bufRus;
}
>> (http://forum.oszone.net/post-916623.html#post916623)

Drongo
05-10-2008, 22:23
Ребята, подскажите как это можно прикрутить к моему Borland'y ?

Admiral
05-10-2008, 22:24
Drongo, а что он ругается на этот код, если поместить его прямо в файл cpp? Сам я Borland Builder только один раз клацал, мне показалось, что откомпилированные проги на нём дают такую же скорость как и Delphi, по этому не используюсь этим компилятором C\C++. Но вопрос выбора компилятора оставим для другой темы. :wink:

Drongo
05-10-2008, 22:32
Не не ругается, компилится с предупреждением, но текст всё равно иероглифами, в общем так есть папка, скажем - Folder в неё кладу файлы HelloWorld.cpp и rus.h подключаю заголовочный файл
#include <iostream.h>
#include <conio.h>
#include "rus.h"
void main()
{
cout<<" Добро пожаловать в мир программирования"<<endl;

getch();
} и всё равно ничего не помогает... как будто он его игнорирует. А если закинуть rus.h в папку Include то не ругается, но всё равно символы кривые.

Admiral
05-10-2008, 22:39
Drongo, так нужно ж так cout<<Rus1(" Добро пожаловать в мир программирования")<<endl; файл то подключается, а функция Rus1() с него не задействуется.

Drongo
05-10-2008, 22:48
Admiral, Точно!!!! Браво! :victory: :clapping: Как я мог так тормознуть! :laugh: Сам же подобное писал недавно:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

char* rus(char* st);

int main()
{
int z;

cout<<rus(" Привет, добро пожаловать в мир программирования")<<endl;
cin>>z;
return 0;
}
// Функция отображения русских символов--------------------------------------
char* rus(char* st)
{
unsigned char* p = st; // при объявлении символов как char русские буквы
// кодируются отрицательными числами
while( *p ){
if(*p >= 192) // здесь русская буква
if(*p <= 239)
*p -= 64;
else
*p -= 16;
p++;
}
return st;
}Так а если что, можно же попробовать заменить содержимое заголовочного файла, этим кодом? Надо попробовать, завтра!

Admiral
05-10-2008, 22:53
Drongo, такое бывает у всех, ведь мы же люди.
Да конечно, всегда возможно по разносить функции по файлам, именно для этого и придумали include. Компилеру все равно, он их перед компиляцией соединяет в один и компилит целиком.

Drongo
05-10-2008, 23:01
Admiral, Durson, Ну ребята! Спасибо Вам за файл и объяснения! :yahoo: :yes: :up

Durson
06-10-2008, 10:41
Сам я Borland Builder только один раз клацал, мне показалось, что откомпилированные проги на нём дают такую же скорость как и Delphi, по этому не используюсь этим компилятором C\C++. Но вопрос выбора компилятора оставим для другой темы. »
Проги написанные на Borland занимают меньше места чем программы написанные на Delphi

ак нужно ж так cout<<Rus1(" Добро пожаловать в мир программирования")<<endl; »
Кстатии можно отредактировать заголовочный файл так что бы вместо Rus1("") писать Ru или Rus.
Для того что бы вместо Rus1("") писать Rus("") нужно изменить библиотечный файл:

#include <iostream.h>
#include <windows.h>
char* Rus(const char* text);


char bufRus[256];
char* Rus(const char* text){
CharToOem(text, bufRus);
return bufRus;
}

Drongo
06-10-2008, 11:33
Durson, Кстатии можно отредактировать заголовочный файл так что бы вместо Rus1("") писать Ru или Rus. »Я уже вчера так и сделал: :)
Заголовочный файл назвал - russian.h
Функцию - Rus
Единственный вопрос. В заголовочном файле russian.h есть ещё заголовочные файлы#include <iostream.h>
#include <windows.h> зачем первый, если в проге он уже имеется? Я пробовал #include <iostream.h> удалять, и без него всё работало как надо. Так зачем он там нужен?

Durson
06-10-2008, 12:26
В новую программу эти заголовочные файлы уже можно не писать :)

Drongo
06-10-2008, 12:50
Durson, эти заголовочные файлы уже можно не писать »Не, этот нужен - #include <windows.h> :yes:

Durson
06-10-2008, 20:24
Не, этот нужен - #include <windows.h> »
В программе или заголовочном файле? Если в программе то почему он нужен?

Drongo
06-10-2008, 20:43
Durson, В самом заголовочном файле нужен :) Тоесть так:

HelloWorld.cpp// Привет мир программирования, приветствие.
#include <iostream.h>
#include <conio.h>
#include "russian.h"

void main()
{
cout<<Rus(" Добро пожаловать в мир программирования")<<endl;

getch();
}russian.h/* #include <iostream.h> можно удалить эту строку из "russian.h" */
#include <windows.h>

char* Rus(const char* text);
char bufRus[256];

char* Rus(const char* text)
{
CharToOem(text, bufRus);
return bufRus;
}




© OSzone.net 2001-2012