Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.74
OVSite
171 / 169 / 6
Регистрация: 22.08.2010
Сообщений: 1,251
#1

Консоль без русского ! - C++

22.08.2010, 16:47. Просмотров 3933. Ответов 33
Метки нет (Все метки)

Начал учить C++ но сталкнулся с проблемой когда пишу консольную программу русский язык заменяет на непонятно какие буквы подскажите в чём дело ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2010, 16:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Консоль без русского ! (C++):

После ввода русского слова, на консоль выводятся краказябры - C++
#include <iostream> using namespace std; int main() { setlocale(LC_ALL,"Russian"); string a;

Как очистить консоль , без мигания - C++
Доброго времени суток. Пишу консольную игру на С++ , и нужно постоянно перерисовывать консоль. Но при очистке/записи в консоль...

Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка - C++
Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка. ...

Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка - C++
Написать программу, которая предлагает пользователю ввести число и выводит в консоль все числа, на которые введенное делится без остатка. ...

Фильтрация русского текста - C++
есть задача. Создать программу, фильтрующую текст, введенный с клавиатуры. Задача программы заключается в считывании текста и...

Вывод русского текста - C++
Привет, я тут упражнение из книжки делаю. Там класс с переменными, содержащими имя (тип string) и ID работника (long). Я все сделал, но...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
22.08.2010, 16:54 #2
Русские шрифты в консоли
0
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
22.08.2010, 21:11 #3
OVSite, Лично я пользуюсь следующей конструкцией:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <windows.h>
#include <stdio.h>
 
char bufRus[256];
 
char *Rus(char *text)
{
  CharToOem( text, bufRus );
  return bufRus;
}
 
int main()
{
  printf(Rus("Ïðèâòå ГўГ±ГҐГ¬!!!"));
  system("pause >> void");
  return 0;
}
0
ForEveR
22.08.2010, 23:50
  #4

Не по теме:

А вообще советую привыкать писать текст на англицком

0
ISergey
23.08.2010, 03:52
  #5

Не по теме:

Lavroff, это не выход.. нужно уметь писать и на русском

0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
23.08.2010, 04:12 #6

Не по теме:

ISergey, Иногда да)


Но в таком случае предпочитаю
C++
1
setlocale(LC_ALL,"");
или
C++
1
 setlocale(LC_ALL,"Russian");
Для писательства в программе вполне потянет)
0
Mencey
23.08.2010, 12:30
  #7

Не по теме:

Цитата Сообщение от Lavroff Посмотреть сообщение

Не по теме:

ISergey, Иногда да)


Но в таком случае предпочитаю
C++
1
setlocale(LC_ALL,"");
или
C++
1
 setlocale(LC_ALL,"Russian");
Для писательства в программе вполне потянет)
Лично у меня setlocale(LC_ALL,""); и setlocale(LC_ALL,"Russian"); не работает!

0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
23.08.2010, 13:28 #8
Mencey, потому что вы используете (wx)Dev-C++, а Lavroff - MS VS
0
PB
Просто прогер
1281 / 1068 / 11
Регистрация: 13.03.2009
Сообщений: 2,502
23.08.2010, 15:49 #9
Юникод еще никто не отменял
0
Вложения
Тип файла: rar Unicode.rar (1.4 Кб, 65 просмотров)
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
23.08.2010, 16:58 #10
OVSite,
В Dev-C++ решаемо таким образом.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <string.h>
#include <windows.h>
 
#define MAX_BUF 512
 
void printr(const char *fmt, ...)
{
    char text[MAX_BUF];
    va_list ap;
 
    if (fmt == NULL)
    {
        return;
    }
 
    va_start(ap, fmt);
    vsnprintf(text, MAX_BUF, fmt, ap);
    va_end(ap);
 
    char* tmp;
 
    tmp = (char *)malloc((strlen(text) + 1) * sizeof(char));
    CharToOem(text, tmp);
    printf("%s", tmp);
    free(tmp);
}
 
int main()
{
    printr("Ïðèâåò, ГЊГЁГ°!"); // Вместо printf используем самописную printr
    
    getch();
    return 0;
}
0
Errorman
0 / 0 / 0
Регистрация: 20.08.2010
Сообщений: 8
24.08.2010, 12:50 #11
Цитата Сообщение от silent_1991 Посмотреть сообщение
OVSite,
В Dev-C++ решаемо таким образом.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <string.h>
#include <windows.h>
 
#define MAX_BUF 512
 
void printr(const char *fmt, ...)
{
    char text[MAX_BUF];
    va_list ap;
 
    if (fmt == NULL)
    {
        return;
    }
 
    va_start(ap, fmt);
    vsnprintf(text, MAX_BUF, fmt, ap);
    va_end(ap);
 
    char* tmp;
 
    tmp = (char *)malloc((strlen(text) + 1) * sizeof(char));
    CharToOem(text, tmp);
    printf("%s", tmp);
    free(tmp);
}
 
int main()
{
    printr("Ïðèâåò, ГЊГЁГ°!"); // Вместо printf используем самописную printr
    
    getch();
    return 0;
}
На nwDevC++ работает, но простая программка превращается в довольно грамозкий код (( есть ли решение по проще ??
0
easybudda
Модератор
Эксперт CЭксперт С++
9625 / 5573 / 947
Регистрация: 25.07.2009
Сообщений: 10,708
24.08.2010, 15:38 #12
Цитата Сообщение от Errorman Посмотреть сообщение
есть ли решение по проще ??
Установить в консоли шрифт Lucida Console и в программу добавить:
C
1
2
3
4
5
6
7
8
9
...
#include <windows.h>
...
int main(void){
    ....
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    ...
}
0
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
24.08.2010, 21:14 #13
Самый простой способ пользоваться досовским редактором или редактором с функцией перевода в файла в досовскую кодировку кстати такую утилиту(переводящую русские буквы в досовкую кодировку) можно сделать самому, что в больших программах неплохая оптимизация!

Добавлено через 2 минуты
ссылка удалена
0
Errorman
0 / 0 / 0
Регистрация: 20.08.2010
Сообщений: 8
28.08.2010, 13:00 #14
Цитата Сообщение от easybudda Посмотреть сообщение
Установить в консоли шрифт Lucida Console и в программу добавить:
C
1
2
3
4
5
6
7
8
9
...
#include <windows.h>
...
int main(void){
    ....
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    ...
}
Что то у меня не получается?
вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
//Stih
#include <windows.h>
#include <iostream>
using namespace std;
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<("Èç æåГ*Г№ГЁГ*Г» Г*ГҐ òðóäГ*Г® ñäåëГ*ГІГј äóðó,")<<endl;                    
    system("PAUSE");
    return 0;
}
Результат выводит по прежнему абру кадабру плюс еще и нажмите любую клавишу для продолжения то же превращает в абру кадабру
0
Миниатюры
Консоль без русского !  
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
28.08.2010, 13:01 #15
Цитата Сообщение от easybudda Посмотреть сообщение
Установить в консоли шрифт Lucida Console
Errorman, сделайте и это
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2010, 13:01
Привет! Вот еще темы с ответами:

Подключение русского языка - C++
Недавно нашла,как сделать так,чтобы на экране отображались на русском языке не только фразы из cout&lt;&lt;, но и которые вводятся с...

кодировка русского шрифта - C++
/*вроде в консоли выходят русский шрифт, но когда выводится новый массив то выходят какие каракули) посмотрите пожалуйста кто умеет*/ ...

ввод русского текста в c++ - C++
при вводе русского вопроса &quot;кто ты?&quot; программа не воспринимает его. и выводит &quot;I can't answer for this question. What is the answer?&quot;. Т.е....

Запрограммировать правило русского языка - C++
Правило написания букв И - Е в корнях с чередованием (-бер-, -бир(а)-, -дер-, -дир(а)- и т.д.). Например, собирать, соберет, сочетание.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.08.2010, 13:01
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru