Перейти к содержимому

Как выводить русский текст в c в visual studio

  • автор:

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode

Как включить русский язык в Си

На начальных этапах программирования многие новички сталкиваются с такой проблемой: они в коде пишут какое-либо сообщение на русском языке для консоли (например, используя printf), но при запуске программы вместо русских слов появляются какие-то непонятные знаки. Покажем, как избавиться от этой проблемы.

Например, при запуске вот этой программы:

#include «stdafx.h»
int _tmain ( int argc , _TCHAR* argv [ ] )
printf ( «Всем привет! Как дела?» ) ;

В консоли будет отображено следующее:

Как включить русский язык в Си - vscode.ru

Всё дело в том, что мы не подключили русскую локализацию.

Исправить эту ошибку очень легко!

Для начала надо добавить следующую библиотеку:

Она отвечает за локализацию.

А затем нам надо просто написать в начале тела кода вот эту строку:

setlocale ( LC_ALL , «Rus» ) ;

Функция setlocale задаёт локализацию программы. По умолчанию это только английский язык.
LC_ALL указывает программе, что локализированы будут все функции.

«Rus», как легко догадаться говорит о том, что локализация произойдёт на русский язык.

Вот и всё! Мы включили русский язык в Си. Наша программа модернизирована и обогащена на две строки. Теперь она будет выглядеть вот так:

Как настроить вывод русского языка в консоли Visual studio?

Как в настройках проекта установить кодировку, что-бы в консоле проект С++ выдавл русские буквы, а не крякозябры. Вариант setlocale — не устраивает, нужно именно в настрйоках. Visual Studio 2010 express

Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
задан 27 апр 2014 в 15:15
180 2 2 золотых знака 3 3 серебряных знака 13 13 бронзовых знаков

ответ простой — установите линукс. Там в консоли кириллица работает отлично. Даже особо настраивать не нужно. Правда студия там не заработает.

27 апр 2014 в 19:23
Так тут дело не в студии, не в С++, а в виндах.
28 апр 2014 в 9:09

если по существу, то нужно поправить настройки консоли. И все. Правда многие программы после этого в консоли будут писать «крякозяблами». Но можно попробовать пофиксить аккуратно.

28 апр 2014 в 9:28

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Открываешь исходник, далее:

File->Advanced Save Options->Encoding->Cyrillic (DOS)-codepage 866 

Если, все-таки, не очень принципиальны настройки, то почитай Русский текст в программах

Отслеживать
ответ дан 28 апр 2014 в 12:17
601 5 5 серебряных знаков 6 6 бронзовых знаков

  • c++
  • кодировка
  • visual-studio
  • консоль
    Важное на Мете
Связанные
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как вывести русские буквы в консольном приложении? [дубликат]

Обратите внимание на комментарий от @Angry Bird выше. В том вопросе на хэшкод все уже обсуждалось. Куча ответов. Пробуйте, но учтите простого решения дури в русской Винде с двумя кодировками нет.

12 окт 2011 в 19:50
Самый лучший способ поставить linux и забыть обо всем этом как о страшном сне 😉
12 окт 2011 в 20:46
В Винде тоже люди.
13 окт 2011 в 13:26

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

Строку system(«chcp 866»); можно писать, если русского языка нет в командной строке. В подобных целях надо писать:

include . setlocale(0,"RUS"); 

Отслеживать
8,657 18 18 золотых знаков 73 73 серебряных знака 181 181 бронзовый знак
ответ дан 12 окт 2011 в 15:53
892 6 6 серебряных знаков 13 13 бронзовых знаков
Спасибо. include , все получилось. CharToOem в MSVS выдает ошибку.
12 окт 2011 в 20:35
@elena, не забудьте принять ответ.
20 окт 2011 в 17:16

Это для Builder, но думаю должно работать.
Объявляете функцию:

void rcout(char *string)
вызываете так:

rcout("Тут ваш текст");

Отслеживать
ответ дан 12 окт 2011 в 19:06
170 10 10 бронзовых знаков

если работать в DevC++, то прямо в Мэйне, в самом начале до объявления вставляете

> setlocale( LC_ALL,"Russian" ); > setlocale( LC_ALL," "); 

Отслеживать
ответ дан 14 окт 2011 в 20:26
202 1 1 золотой знак 4 4 серебряных знака 13 13 бронзовых знаков

Во первых при выводе, переведите строку в массив чаров:

cout  

Ну и если это не поможет, попробуйте воспользоваться:

setlocale( LC_ALL,"Russian"); 

И еще, как написал @KoVadim гугл имеет для Вас много ответов

Отслеживать
ответ дан 12 окт 2011 в 14:31
Sergii Kozlov Sergii Kozlov
2,468 16 16 серебряных знаков 13 13 бронзовых знаков

cout
12 окт 2011 в 15:55

#include using namespace std; int main()< setlocale(LC_CTYPE, "rus"); //"Rissian" cout

Отслеживать
ответ дан 4 апр 2015 в 11:44
11 3 3 бронзовых знака

    Важное на Мете
Связанные
Похожие

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Русские символы при вводе и выводе на C++ [дубликат]

Начал изучать C++ и столкнулся с проблемой вывода русских букв в консоль. У нас на форуме узнал, что чтобы C++ правильно отображались русские буквы, надо применять setlocale(LC_ALL, "Russian") и применял её, всё было нормально, пока в книге не прочитал про ввод строк и строки и запустил пример из книги. В программе, код которой идёт ниже, если оставить setlocale , то программа выводит русские буквы нормально, а вот если запросить строку и ввести русские буквы, а потом вывести их, то они портятся при последующем выводе. Если убрать setlocale , то русские буквы при вводе, а потом выводе не портятся, зато вывод их из программы портится.

// insrtl.cpp -- чтение более одной строки #include int main()< using namespace std; setlocale(LC_ALL,"Russian"); const int ArSize = 20; char name[ArSize]; char dessert[ArSize]; cout > name; cout > dessert; cout

Вопрос: как мне поступить, чтобы можно было и из программы русские буквы выводить и при запросе ввода и последующем выводе они не портились? UPD: попробовал так:

// insrtl.cpp -- чтение более одной строки #include #include char *Rus(char *str) < static char s[1024]; CharToOem(str, s); return s; >int main()< using namespace std; const int ArSize = 20; char name[ArSize]; char dessert[ArSize]; cout > name; cout > dessert; cout

Но вообще получается что-то странное похоже что в переменные записываются выводимые строки : в desert записывается "У меня есть вкусный " а в name записывается " для вас, " . И что делать я хочу русский язык а не

C:\Users\Rules>"D:\ProjectsC++\C++ Learning\Chapter 4\insrt1\insrt1.exe" Введите свое имя: Иван Введите свой любимый десерт: Какао У меня есть вкусный ? Є R для вас, ?ў -. Для продолжения нажмите любую клавишу . . . 

после моего кода и не то что стало после UPD а именно:

C:\Users\Rules>"D:\ProjectsC++\C++ Learning\Chapter 4\insrt1\insrt1.exe" Введите свое имя: Иван Введите свой любимый десерт: Какао У меня есть вкусный У меня есть вкусный для вас, для вас, . Для продолжения нажмите любую клавишу . . . 

UPD: Нашёл самый лучший идеальный вариант здесь и всем настоятельно рекомендую использовать ТОЛЬКО ЭТОТ ВАРИАНТ он самый лучший!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *