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

Ввод и вывод строк на русском языке (кирилице) - C++

Восстановить пароль Регистрация
 
Delvox
 Аватар для Delvox
7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54
22.06.2013, 19:30     Ввод и вывод строк на русском языке (кирилице) #1
Здравствуйте уважаемые форумчани!

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <windows.h>
 
int main ()
{
    using namespace std;  //обьявление пространства имен std внутри функции main
    setlocale(LC_ALL,"");  //Русский язык в консоли
 
    char   name[256];  //обьявляем массив переменных для строки имени максимум 256 символов
    char adress[256];  //обьявляем массив переменных для строки адреса максимум 256 символов
 
    SetConsoleCP(866);  //меняем кодировку на CP-866 чтобы выводимы cout'ом текст был на кирилице 
    cout << "Введите ваше имя: ";  //вывод строки на кирилице
    SetConsoleCP(1251);  //меняем кодировку на CP-1251 чтобы передать переменной name текст на кирилице
    cin.get(name,256);  //Считывание переменной name
 
    cin.get(); //ожидание нажатия клавиши Enter после ввода имени для перехода на следующую строку
 
    SetConsoleCP(866);  //меняем кодировку на CP-866 чтобы выводимы cout'ом текст был на кирилице
    cout << "Введите ваш адрес: ";  //вывод строки на кирилице
    SetConsoleCP(1251);  //меняем кодировку на CP-1251 чтобы передать переменной name текст на кирилице
    cin.get(adress,256);  //Считывание переменной adress
    
    SetConsoleCP(866);  //меняем кодировку на CP-866 чтобы выводимы cout'ом текст был на кирилице
    cout << "Ваше имя: " << name << endl << "Ваш адрес: " << adress << endl;  //вывод результата программы
    system("pause");  //ожидание нажатия клавиши для завершения программы
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2013, 19:30     Ввод и вывод строк на русском языке (кирилице)
Посмотрите здесь:

Вывод числительных на русском языке. C++
C++ Ввод - вывод строк + пробелы
Переменные на русском языке. C++
C++ Вывод в файл на русском языке
Ввод предложения на русском языке C++
C++ почему текст сообщения на русском языке в программе на с++ не выводиться на русском языке при работе программы в операционной системе ms doc в конс
GeoTiff - примеры ее использования на языке c , желательно на русском языке C++
Вывод значений на Русском языке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 982
Регистрация: 02.05.2013
Сообщений: 10,298
Завершенные тесты: 1
22.06.2013, 20:19     Ввод и вывод строк на русском языке (кирилице) #2
Этот вариант также неполный.
На нерусских локализациях Windows по умолчанию все равно будут кракозябры.
Delvox
 Аватар для Delvox
7 / 7 / 1
Регистрация: 09.03.2013
Сообщений: 54
22.06.2013, 20:23  [ТС]     Ввод и вывод строк на русском языке (кирилице) #3
Цитата Сообщение от Убежденный Посмотреть сообщение
Этот вариант также неполный.
На нерусских локализациях Windows по умолчанию все равно будут кракозябры.
оговорка:
Предлагаемый вариант предлагается для русско-язычной локализации.
Yandex
Объявления
22.06.2013, 20:23     Ввод и вывод строк на русском языке (кирилице)
Ответ Создать тему
Опции темы

Текущее время: 06:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru