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

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

Войти
Регистрация
Восстановить пароль
 
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
#1

Кодировка в консоли (на ЕГЭ) - C++

04.09.2013, 22:09. Просмотров 697. Ответов 14
Метки нет (Все метки)

В этом году буду писать экзамен, но дело в том, что в visual studio setlocale(LC_ALL,"Rus"); не приводит ни к чему (знаю, что в самой консоли надо настраивать другой шрифт, который поддерживает кириллицу). Из-за такой ерунды могут не зачесть все задания (из-за меня никто не будет настраивать свою консоль, при условии того, что абсолютное большинство пишет на паскале который вроде бы все поддерживает, а я хочу на с++). И такой вопрос: как быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 22:09     Кодировка в консоли (на ЕГЭ)
Посмотрите здесь:

ЕГЭ Информатика С2 C++
ЕГЭ Информатика С2 (Массивы) C++
ЕГЭ Информатика С2 C++
C++ ЕГЭ Информатика С4
C++ ЕГЭ Информатика
C++ Кодировка в консоли(C)
Кодировка в консоли C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yapechenko
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 22
04.09.2013, 22:25     Кодировка в консоли (на ЕГЭ) #2
Кириллица в VISUAL 2010
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,111
04.09.2013, 22:26     Кодировка в консоли (на ЕГЭ) #3

Не по теме:

Заявляешь, что в современных системах нет мильтиязычных кодировок кроме юникода и обвиняешь всех, кто против, в нацизме и шиндопроблемах.


Транслит и чистый английский нынче не катят?
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
04.09.2013, 23:52  [ТС]     Кодировка в консоли (на ЕГЭ) #4
Идет список фамилий на вход (в кириллице), при некотором условии фамилию надо вывести на экран
Jupiter
Каратель
Эксперт С++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.09.2013, 23:56     Кодировка в консоли (на ЕГЭ) #5
Цитата Сообщение от BuGi Посмотреть сообщение
Идет список фамилий на вход (в кириллице), при некотором условии фамилию надо вывести на экран
ну так и обращайся к организаторам, на форум олимпиады, если он у них есть, мы то тут при чем? олимпиады проводят, русский пропагандируют, а свой компилятор забацать слабо?

Не по теме:

кто его там будет компилировать?

BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
05.09.2013, 00:01  [ТС]     Кодировка в консоли (на ЕГЭ) #6
так это же не олимпиада
и на счет компиляции. мне все-таки кажется, что компилируют. сложно так оценить, правильно все работает или есть какие-то баги, за которые надо снизить балл
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
05.09.2013, 00:07     Кодировка в консоли (на ЕГЭ) #7
троли, троли, троли. На сколько я помню в хедере windows.h есть замечательная функция CharToOem(), которая как раз подходит для решения вашей проблемы. берем строчку с русским текстом char* russian и вызываем функцию. Первый её аргумент это строчка на вход, второй буффер на выход. Таким образом можем написать функцию для вывода в stdout:

C++
1
2
3
4
char* Rus(char* rus){
    CharToOem(rus,rus);
    return rus;
}
и вставить ее где необходим русскоязычный выход:

C++
1
std::cout << Rus("Сидоров");
вроде так =)
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
05.09.2013, 00:10  [ТС]     Кодировка в консоли (на ЕГЭ) #8
Уже лучше) А кроссплатформенного нет ничего?
monolit
180 / 180 / 21
Регистрация: 24.03.2011
Сообщений: 652
Завершенные тесты: 1
05.09.2013, 00:15     Кодировка в консоли (на ЕГЭ) #9
Хз, чем вам setlocale не угодило... У меня работало и в 2008, и в 2010, и в 2012... В общем, везде работало.
C++
1
setlocale(LC_ALL, "russian");
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
05.09.2013, 00:20  [ТС]     Кодировка в консоли (на ЕГЭ) #10
C++
1
2
string a = "текст";
cout << a;
Работает, а вот если я сначала считываю с экрана, а потом вывожу, то нет
monolit
180 / 180 / 21
Регистрация: 24.03.2011
Сообщений: 652
Завершенные тесты: 1
05.09.2013, 00:34     Кодировка в консоли (на ЕГЭ) #11
Странно, у меня работает... Раньше вроде проблемы такие были, но сейчас нету...хз почему)
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
05.09.2013, 00:47     Кодировка в консоли (на ЕГЭ) #12
а chartooem чем то не устраивает? или на экзамене будет линукс? вообще у линукса с этим проблем нет в принципе

Добавлено через 4 минуты
для изменения кодировки можно так же воспользоваться iconv.h, не знаю есть ли он в windows. Вот, например с UTF-8 на CP1251:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <string.h> //для strlen
#include <iconv.h>
 
void utf8c1251 (char *from, char *to)
{
    size_t fl, tl; 
    
    iconv_t d; 
    fl=tl=strlen(from); 
    d=iconv_open("UTF-8","CP1251"); 
    iconv(d, &from,&fl,&to,&tl); 
    iconv_close(d);                               
}
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
05.09.2013, 03:35     Кодировка в консоли (на ЕГЭ) #13
Цитата Сообщение от fuzzytoozy Посмотреть сообщение
а chartooem чем то не устраивает? или на экзамене будет линукс? вообще у линукса с этим проблем нет в принципе
А как в С++ это решается? Без использования си-стайла чар* и т.д. Мучался немного сегодня в винде и единственный рабочий вариант получился с подстановкой 1251 и изменением шрифта на люсиду. Пытался название файла в std::cin / std::wcin считать. Без 1251 кодировки (просто setlocale с разными параметрами) русский отображался, но название файла на диске получалось крякозябликами.
Croessmah
Модератор
Эксперт CЭксперт С++
12877 / 7263 / 810
Регистрация: 27.09.2012
Сообщений: 17,940
Записей в блоге: 2
Завершенные тесты: 1
05.09.2013, 05:36     Кодировка в консоли (на ЕГЭ) #14
Цитата Сообщение от BuGi Посмотреть сообщение
из-за меня никто не будет настраивать свою консоль
Это сугубо их проблемы. Вы же когда телевизор покупаете не ругаете продавцов за то, что у Вас дома электричество отсутствует?

А если Ваш код будут запускать на калькуляторе? Врядли он будет работать, так что никто не сдаст
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 12:04     Кодировка в консоли (на ЕГЭ)
Еще ссылки по теме:

C++ C4 ЕГЭ
С++ Одна из задач ЕгЭ С4 C++
C++ Кодировка ввода вывода консоли под кириллицу и латиницу
C++ Кодировка символов в консоли
Неправильная кодировка в консоли C++

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
5589 / 2623 / 239
Регистрация: 01.11.2011
Сообщений: 6,448
Завершенные тесты: 1
05.09.2013, 12:04     Кодировка в консоли (на ЕГЭ) #15
Цитата Сообщение от Croessmah Посмотреть сообщение
Это сугубо их проблемы.
Суровые реалии таковы, что нет. Не их.
Но это все полемика. BuGi, лучше всегда быть готовым, почитайте и поэкспериментируйте с вот этим: Русские шрифты в консоли.
Yandex
Объявления
05.09.2013, 12:04     Кодировка в консоли (на ЕГЭ)
Ответ Создать тему
Опции темы

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