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

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

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

ЕГЭ Информатика С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
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
04.09.2013, 22:26     Кодировка в консоли (на ЕГЭ) #3

Не по теме:

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


Транслит и чистый английский нынче не катят?
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
04.09.2013, 23:52  [ТС]     Кодировка в консоли (на ЕГЭ) #4
Идет список фамилий на вход (в кириллице), при некотором условии фамилию надо вывести на экран
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 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
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 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
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 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
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,900
Записей в блоге: 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++ Кодировка ввода вывода консоли под кириллицу и латиницу

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

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

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