2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Шрифт в DEV-C++
Сообщение28.02.2013, 17:22 


21/05/09
992
Впервые решил попробовать написать прогр. на Си. Скачал и установил DEV-C++. Написал прогр. При запуске - работает, но русскоязычный шрифт отображает криво (XP). Сам не смог найти как это исправить. Помогите советом!
Изображение

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 18:02 
Заслуженный участник


11/11/07
1198
Москва
В начало вставьте
Код:
#include <locale.h>

А в начало функции main - строчку
Код:
setlocale(LC_ALL, "");

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 20:22 
Аватара пользователя


27/01/09
814
Уфа
В редакторе у вас кодировка Windows-1251, а на консоли DOS-866. Можно в консоли поменять кодировку на Windows-1251, но тогда команды консоли будут неправильно выводиться. Проще перед компиляцией файл с исходником сохранять в постороннем редакторе в кодировке DOS-866, тогда скомпилируется файл с DOS-866 кодировкой, но DEV-C++ в редакторе будет иногда заменять её на Windows-1251, а иногда оставлять в DOS-866, тогда в DEV-C++ кодировка неправильно выводится и надо сохранить файл исходника в Windows-1251.
А локализация и без того локальная.

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 21:01 
Заслуженный участник


27/04/09
28128
UTF-8, UTF-16 и UTF-32 не существуют?

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 21:09 
Аватара пользователя


27/01/09
814
Уфа
UTF закорючку в начало исходного файла вставляет и как UTF на консоли будет выглядеть?

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 21:26 


21/05/09
992
AV_77, не помогло, все остается по старому :-(
Спасибо всем кто откликнулся, завтра попробую еще поковыряться...

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 21:35 
Аватара пользователя


27/01/09
814
Уфа
Еще в DEV-C++ в Серсвис - Параметры редактора - Вид - Шрифт редактора можно поставить Terminal 14, тогда в редакторе и на консоли одинаково DOS-866 будет, но для этого исходный файл в DOS-866 надо сохранить.

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 21:40 
Заслуженный участник


27/04/09
28128
Chifu в сообщении #689275 писал(а):
UTF закорючку в начало исходного файла вставляет
Если вы имеете в виду byte order mark, то при поддержке Unicode он никак на отображение не влияет. Кстати, он не обязателен в начале потока.

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 21:43 
Аватара пользователя


27/01/09
814
Уфа
arseniiv Ну а теперь скажите как Unicode правильно на консоль вывести и чтоб оно в редакторе правильно выглядело и вводилось тоже правильно?
Печально что сейчас молодёжь впадает в панику когда кодировка файла не соответствует кодировке вывода. На лабах уносят файл домой, потом приходят и говорят, что "результаты расчётов" не сохранились, такая вот беспомощность ...

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 21:48 
Заслуженный участник


27/04/09
28128
Не знаю, но с XP cmd.exe отображать уникодные кодировки должна.

P. S. Пожалуйста, не употребляйте «UTF» без числа: все три -8, -16 и -32 — разные кодировки.

-- Пт мар 01, 2013 00:53:53 --

Chifu в сообщении #689303 писал(а):
На лабах уносят файл домой, потом приходят и говорят, что "результаты расчётов" не сохранились, такая вот беспомощность ...
Это не беспомощность, это отсутствие должных в таких ситуациях знаний.

В 90-е больше людей знали о кодировках, потому что их к этому вынуждала жизнь, всё это буйство вариантов КОИ и вышеперечисленные CP866 и Windows-1251, а ещё -1252. Сейчас Unicode поддерживается почти везде, вот необходимое знакомство у большой доли населения и пропало.

-- Пт мар 01, 2013 00:57:00 --

Жалко, что у меня тоже, получается, нет должных знаний (чтобы ответить, что же сделать с консолью). Я вывожу в консоли только символы ASCII, обычно это программки для быстрого тестирования чего-нибудь.

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 22:00 
Аватара пользователя


27/01/09
814
Уфа
На консоли по умолчанию DOS-866 стоит, поэтому у новичков "Hello, World!" выводится, а на "Здравствуй, Мир!" программрование заканчивается.

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 22:03 
Заслуженный участник


09/09/10
3729
Ставим в консоли шрифт Lucida Consolas, и все. WriteConsoleW тоже придумана не просто так.

-- Чт фев 28, 2013 23:04:29 --

Вообще, виндовая консоль уже шесть лет как полностью поддерживает Unicode.

http://blogs.msdn.com/b/michkap/archive ... 72032.aspx

http://blogs.msdn.com/b/michkap/archive ... 89346.aspx

-- Чт фев 28, 2013 23:05:03 --

http://blogs.msdn.com/b/michkap/archive ... 06597.aspx

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение28.02.2013, 22:10 
Заслуженный участник
Аватара пользователя


06/10/08
6422
В свое время (Win XP SP2, сейчас уже исправили, скорее всего), программа падала при попытках вывода в cout после _setmode(_fileno(stdout), _O_U8TEXT).

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение01.03.2013, 00:14 
Аватара пользователя


27/01/09
814
Уфа
Если у консоли поменять шрифт на Lucida Console, тогда команды в кодировке Windows-1251 будут выводиться нормально, а кодировку консоли можно поменять вызовом функции:
system("chcp 1251");
тогда в редакторе и на консоли кодировка одинаково Windows-1251 будет, исходный файл должен быть в этой же кодировке.
Зачем надо из исходной кодировки в Unicode переделывать, а из Unicode в кодировку консоли, когда есть возможность непосредственно совместить кодировку редактора и консоли? Это если вы широковещательно посылаете имеет смысл, а уж на своём то компьютере мы можем совместить кодировки.

 Профиль  
                  
 
 Re: Шрифт в DEV-C++
Сообщение01.03.2013, 00:29 
Заслуженный участник
Аватара пользователя


06/10/08
6422
В данном конкретном случае, конечно, ни к чему, но иногда возникает необходимость отображать, скажем, кириллицу и латиницу с диакритикой, или кириллицу и греческий, или какой-нибудь неанглийский алфавит и IPA.
Юникод - крайне полезная штука и то, что он не используется по умолчанию, грустно. Справедливости ради, в линуксе все тоже было грустно до недавнего времени. По инерции экономят память, занимаемую текстом, что в эпоху мультимедиа уже не актуально.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group