Перейти к содержанию
СофтФорум - всё о компьютерах и не только

про консольные программы на С++ и кодировку


Рекомендуемые сообщения

Сейчас изучаю С++ по одной англоязычной книге Герберта Шилдта (Herbert Schildt) - "C++ Beginner's Guide". Все самые первые программы, разумеется, консольные. Разумеется также, что весь выводимый текст - англоязычный. Но когда я пытаюсь писать выводимый через cout текст по-русски, в командной строке он отображается в виде абракадабры. Я так понимаю, что дело в кодировке. Возможно ли где-то ее настроить (хотя бы в программе), чтобы выводимый русский текст нормально отображался?

Ссылка на комментарий
Поделиться на другие сайты

OS_Winuntu:

Есть два способа: предварительно перекодировать и вставить в виде кракозябров, которые отобразятся при выполнении нормальным текстом, этот вариант упоминался, например, в теме Русский шрифт в Microsoft Visual C++, или использовать по потребности функцию перекодирования прямо в программе, как показано в паре постов, начиная с этого. Если в библиотеках среды программирования нет готовой стандартной функции, функцию замены символов в строке можно написать и самому, хорошая тренировка.

Еще один вариант - использовать транслитерацию, то есть писать по-русски английскими буквами - заказчику так не сдашь, а для себя - сойдет.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Тролль, спасибо. :bye1:

Еще один вопрос: как писать файлы заголовков (я туда отправлю свою функцию)? По возможности кинь ссылочку, плиз. А то в этом руководстве (у Шилдта) такой инфы нет. И, если можно, чтобы без Майкрософтовской специфики.

Ссылка на комментарий
Поделиться на другие сайты

OS_Winuntu:

Файл заголовков - это обычный файл, содержащий часть программы, которую тебе или кому-то еще захотелось выделить в отдельный файл, обычно для упрощения включения этого куска текста в разные программы. Текст из любого текстового файла можно включить в текст программы, используя оператор препроцессора #include, тогда содержание этого текстового файла добавится вместо этого оператора. А файл заголовков называется так просто потому, что в него обычно включаются заголовки стандартных функций и константы - или, если ты напишешь его сам, твои функции и константы. Можешь включить в него полные описания функций и вообще все, что хочешь. Препроцессор просто подставляет текст из файла туда, где был оператор #include с именем этого файла. Есть несколько вариантов, как вставлять имя файла за #include, определяющих, в каких каталогах препроцессор будет искать этот файл. А расширение h служит только для того, чтобы тебе было видно назначение файла, в принципе оно не обязательно (но если уж дал файлу расширение h, дай препроцессору имя файла с этим расширением, автоматически он подставлять его к имени файла без расширения не будет).

Единственное ограничение - это нельзя выделять в подключаемый файл, например, начало комментария или константы, которые закончатся в исходном файле, то есть резать уж совсем "по живому". Но это никому и не нужно. Пример включения в заголовочный файл функции целиком можешь посмотреть, например, тут.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...