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

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

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

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

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

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

Кодировка в консоли(C) - C++
Здравия Я к вам с очередной проблемой:)Читал сейчас тему русские шрифты в консоли и задался вопросом. Вот вы говорите, говорите про C++,...

Кодировка в консоли - C++
Добрый день , имея некоторый опыт программирования на c# решил так же изучить С++, однако при написании простейшей программ (консольные...

Кодировка символов в консоли - C++
Напомните ещё один способ установки кодовой страницы в консоли для визуал студии, по крайней мере работающий в ней. В нём кодировка...

Неправильная кодировка в консоли - C++
#include "stdafx.h" #include <iostream> using namespace std; const int strsize = 20; int main() struct bop { char...

Кодировка ввода вывода консоли под кириллицу и латиницу - C++
Возникла необходимость одновременной работы кириллицы и латиницы в консоле.(ввод-обработка-вывод) setlocale(LC_CTYPE, "rus"); ...

Клавиши F1-F12 в консоли, и работа с мышкой в консоли - C++
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор мышки (и еще мне надо бы узнать нажатие...

14
yapechenko
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 22
04.09.2013, 22:25 #2
Кириллица в VISUAL 2010
0
NoMasters
Псевдослучайный
1762 / 1105 / 73
Регистрация: 13.09.2011
Сообщений: 3,141
04.09.2013, 22:26 #3

Не по теме:

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


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

Не по теме:

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

0
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
05.09.2013, 00:01  [ТС] #6
так это же не олимпиада
и на счет компиляции. мне все-таки кажется, что компилируют. сложно так оценить, правильно все работает или есть какие-то баги, за которые надо снизить балл
0
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("Сидоров");
вроде так =)
1
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
05.09.2013, 00:10  [ТС] #8
Уже лучше) А кроссплатформенного нет ничего?
0
monolit
185 / 184 / 22
Регистрация: 24.03.2011
Сообщений: 667
Завершенные тесты: 1
05.09.2013, 00:15 #9
Хз, чем вам setlocale не угодило... У меня работало и в 2008, и в 2010, и в 2012... В общем, везде работало.
C++
1
setlocale(LC_ALL, "russian");
0
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
05.09.2013, 00:20  [ТС] #10
C++
1
2
string a = "текст";
cout << a;
Работает, а вот если я сначала считываю с экрана, а потом вывожу, то нет
0
monolit
185 / 184 / 22
Регистрация: 24.03.2011
Сообщений: 667
Завершенные тесты: 1
05.09.2013, 00:34 #11
Странно, у меня работает... Раньше вроде проблемы такие были, но сейчас нету...хз почему)
0
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);                               
}
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
05.09.2013, 03:35 #13
Цитата Сообщение от fuzzytoozy Посмотреть сообщение
а chartooem чем то не устраивает? или на экзамене будет линукс? вообще у линукса с этим проблем нет в принципе
А как в С++ это решается? Без использования си-стайла чар* и т.д. Мучался немного сегодня в винде и единственный рабочий вариант получился с подстановкой 1251 и изменением шрифта на люсиду. Пытался название файла в std::cin / std::wcin считать. Без 1251 кодировки (просто setlocale с разными параметрами) русский отображался, но название файла на диске получалось крякозябликами.
0
Croessmah
Эксперт CЭксперт С++
13430 / 7585 / 857
Регистрация: 27.09.2012
Сообщений: 18,677
Записей в блоге: 3
Завершенные тесты: 1
05.09.2013, 05:36 #14
Цитата Сообщение от BuGi Посмотреть сообщение
из-за меня никто не будет настраивать свою консоль
Это сугубо их проблемы. Вы же когда телевизор покупаете не ругаете продавцов за то, что у Вас дома электричество отсутствует?

А если Ваш код будут запускать на калькуляторе? Врядли он будет работать, так что никто не сдаст
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
05.09.2013, 12:04 #15
Цитата Сообщение от Croessmah Посмотреть сообщение
Это сугубо их проблемы.
Суровые реалии таковы, что нет. Не их.
Но это все полемика. BuGi, лучше всегда быть готовым, почитайте и поэкспериментируйте с вот этим: Русские шрифты в консоли.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 12:04
Привет! Вот еще темы с ответами:

считывание с консоли ( не с клавы, а именно с консоли) - C++
нужно написать функцию которая возвращает string в котором написано 500 символов которые были выведены в консоли от начала. среда :...

C4 ЕГЭ - C++
Нужно решить С4, прошу вашей помощи )) По каналу связи передаётся последовательность положительных целых чисел, все числа не...

ЕГЭ по информатике - C++
Извините если не в ту тему написал, не могу понять куда лучше это написать. На каком языке сдавать ЕГЭ по информатике? Я знаю только...

ЕГЭ Информатика С2 - C++
/*Опишите на русском языке или на одном из языков программирования алгоритм суммирования положительных элементов квадратной матрицы,...


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

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

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