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
815
Уфа
В редакторе у вас кодировка 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
815
Уфа
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
815
Уфа
Еще в 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
815
Уфа
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
815
Уфа
На консоли по умолчанию 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
815
Уфа
Если у консоли поменять шрифт на 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, Супермодераторы



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

Сейчас этот форум просматривают: mihaild


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

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