Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.06.2007, 18:05   #11
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
Подмигивание

Код:
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <windows.h>
char bufRus[256];
char*Rus(const char*text)
{
     CharToOem(text, bufRus);
     return bufRus;
}
void main()
{
int n;
{
     printf(Rus("----------: %:mad: "), n);
     printf(Rus("----------:mad:\n"), :eek:);
}
         getch();
}
Кусок реально работающей проги
merax вне форума
Старый 07.08.2007, 15:45   #12
liander
 
Регистрация: 07.08.2007
Сообщений: 4
По умолчанию

Ещё русский текст можно выводить так:

Код:
#include <iostream>

int main()
{
setlocale( LC_ALL, \".866\" ); // поставить перед использование русского текста
std::wcout << L"Сюда вставляй русский текст."; // именно L"текст", а не "текст"
return 0;
}
liander вне форума
Старый 04.10.2007, 23:08   #13
Adamant
Пользователь
 
Аватар для Adamant
 
Регистрация: 20.09.2007
Сообщений: 99
По умолчанию

Уважаемые профи. У меня небольшая трабла. Введенная в консоле кириллица записывается в файл "крокозямбами".
Юзаю Borland C++ Builder X. И кстати многие приведенные на форуме листинги не работают (ошибка при компиляции). Думаю перейти на Borland C++ Builder 5. В чем может быть причина? Может поможете советом.
Заранее благодарю. С уважением!
Голова человеку дадена - не токмо шапку носить!

Последний раз редактировалось Adamant; 04.10.2007 в 23:10.
Adamant вне форума
Старый 06.10.2007, 10:55   #14
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
Хорошо

Попробуй так:
Код:
#include "iostream.h"
#include "conio.h"
#include "windows.h"
#include "stdio.h"

// Функция, выводящая на экран строку
void RussianMessage(char *str)
{
	char message[100];
	CharToOem(str,message);
	cout<<message;
}
void main()
{
        RussianMessage("Привет мир!");
        getch();
}
На Visual Studio C++ 6.0 компилируется без проблем.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума
Старый 06.10.2007, 18:36   #15
Adamant
Пользователь
 
Аватар для Adamant
 
Регистрация: 20.09.2007
Сообщений: 99
Вопрос

Цитата:
Сообщение от AlDelta Посмотреть сообщение
Попробуй так:
..........
........
// Функция, выводящая на экран строку
void RussianMessage(char *str)
.................
................
...............

На Visual Studio C++ 6.0 компилируется без проблем.
Спасибо за внимание! Но....................
Вопрос был:
<<Введенная в консоле кириллица, записывается в файл "крокозямбами".>>

А на вопрос о выводе на консоль из буфера (с клавы) кириллицы
решен еще на 1 странице этого топика.
Так что увы, вы мне не помогли
Голова человеку дадена - не токмо шапку носить!
Adamant вне форума
Старый 09.10.2007, 20:34   #16
xD3MoN
Новичок
Джуниор
 
Регистрация: 06.06.2007
Сообщений: 1
По умолчанию

Цитата:
Сообщение от Adamant Посмотреть сообщение
Спасибо за внимание! Но....................
Вопрос был:
<<Введенная в консоле кириллица, записывается в файл "крокозямбами".>>

А на вопрос о выводе на консоль из буфера (с клавы) кириллицы
решен еще на 1 странице этого топика.
Так что увы, вы мне не помогли
Попробуй перед записью в файл прогнать текст функцией OemToChar()
xD3MoN вне форума
Старый 01.03.2008, 01:51   #17
Ruka
Новичок
Джуниор
 
Регистрация: 01.03.2008
Сообщений: 2
По умолчанию

Конкретно по Dev-C++ и руского вывода в нем, начал учить С++ именно с этим компилятором и долго выбешивала невозможность руского вывода, недели полторы решение искал кучу всего перепробывал в итоге предлогаю такое временное решение проблемы:

В разделе C:\Dev-Cpp\include создается фаил: russia.h (.h -расшерение)
Содержание файла:

Код:
#include <iostream>
#include "windows.h"
using namespace std;

void rus(char *str)
{
   char message[100];
   CharToOem(str,message);
   cout<<message; // подходит для С++ точно, для С хз
}

Сохраняем фаил и забываем о том где он лежит)))

в програмmах после :
#include <iostream>
прописываем 
#include "russia.h"

далее как обычно 
int main(){
rus("Этот текст будет напечатан на русском языке \n");
system("pause");
return 0;
}
Решение скорее всего корявое, я в С++ только до изучения классов добрался, зато рабочее и не требующее каждый раз функцию преобразования кодировки прописывать.
Главное запомнить прописать в начале программки #include "russia.h"
А при выводе руского текста использовать функцию rus("Текст");

Последний раз редактировалось merax; 16.03.2008 в 10:46.
Ruka вне форума
Старый 01.03.2008, 17:52   #18
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

Эта функция руссифицирует текст любой (в разумных пределах) длинны:

Код:
#include <string>
using std::string;
#include <windows.h>

string to_rus(string text){
 char* buffer = const_cast<char*>(text.c_str());
 CharToOem(buffer, buffer);
 return buffer;
}
alexx777 вне форума
Старый 04.03.2008, 22:53   #19
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

Нашёл некоторые недоработки в предыдущей функции. Вот новая:
Код:
#include <string>
using std::string;
#include <cstdlib>
using std::strcpy;
#include <windows.h>

string to_rus(string text){
 char res[text.length()];
 strcpy(res, text.c_str());
 CharToOem(res, res);
 return res;
}
alexx777 вне форума
Старый 09.03.2008, 21:38   #20
alexx777
Пользователь
 
Регистрация: 20.02.2008
Сообщений: 75
По умолчанию

Не заметил одной серъёзной ошибки в функции:

char res[text.length()];

нужно заменить на

char res[text.length()+1];

Количество символов + символ конца строки.
alexx777 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русский язык на Pascal-e madmot Помощь студентам 5 21.12.2009 18:10
Русский язык Sanek_ntsk Общие вопросы C/C++ 9 06.03.2008 16:50
Русский язык Elefanter Свободное общение 14 22.02.2008 16:23
Русский язык [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 7 01.02.2008 22:58
РУССКИЙ ЯЗЫК vicdon Паскаль, Turbo Pascal, PascalABC.NET 3 19.11.2007 14:34