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

Русские буквы в консоли - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 132, средняя оценка - 4.62
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
12.08.2012, 22:54     Русские буквы в консоли #1
У меня прекрастно выводятся русские буквы в консоль, но если я ввожу русский текст в какуюту переменную, то вывести ее коректно не получается:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>   
#include <string>
#include <conio.h> 
using namespace std;
 
 
int main() 
{
setlocale(LC_ALL,"Rus"); //локализация
string name; //переменная
cin>>name; //ввожу русские буквы в переменную
cout<<name;  //мне выводятся непонятные каракули
getche();
}

Что посоветуете?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
12.08.2012, 22:57     Русские буквы в консоли #2
Вместо
C++
1
setlocale(LC_ALL,"Rus");
Напиши
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
И поставь в консоле шрифт Lucida Console.

Еще добавить
C++
1
#include "windows.h"
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
12.08.2012, 23:03  [ТС]     Русские буквы в консоли #3
Цитата Сообщение от Intel~lect Посмотреть сообщение
Вместо
C++
1
setlocale(LC_ALL,"Rus");
Напиши
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
И поставь в консоле шрифт Lucida Console.

Еще добавить
C++
1
#include "windows.h"
А как поставить шрифт?

Добавлено через 2 минуты
Все поменял.. но теперь когда я ввожу русские буквы они просто вводятся каракулями, то есто еще до занесения данных в переменную
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
12.08.2012, 23:04     Русские буквы в консоли #4
Цитата Сообщение от Egor138 Посмотреть сообщение
А как поставить шрифт?
Правой кнопкой мыши по заголовку и выбери "Свойство", потом вкладку "Шрифт". На скрине показал
Миниатюры
Русские буквы в консоли  
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
12.08.2012, 23:08     Русские буквы в консоли #5
Цитата Сообщение от Egor138 Посмотреть сообщение
но теперь когда я ввожу русские буквы они просто вводятся каракулями, то есто еще до занесения данных в переменную
Да нет. Такого не должно быть. Может что неправильно сделал? У меня все нормально выводится
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
12.08.2012, 23:11  [ТС]     Русские буквы в консоли #6
Цитата Сообщение от Intel~lect Посмотреть сообщение
Да нет. Такого не должно быть. Может что неправильно сделал? У меня все нормально выводится
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <iostream>   
#include <string>
#include <conio.h> 
#include "windows.h"
using namespace std;
 
 
int main() 
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
string name;
cin>>name;
cout<<name;
getche();
}
Вроде все правильно, но теперь просто не могу ввести название, неговоря уже о выводе переменной

Добавлено через 1 минуту
А нельзя как нибудь проверить на каком языке я ввожу данные? Или автоматически поменять расскладку и заблокировать русскую?
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
12.08.2012, 23:19     Русские буквы в консоли #7
Цитата Сообщение от Egor138 Посмотреть сообщение
#include "stdafx.h"
#include <iostream>
#include <string>
#include <conio.h>
#include "windows.h"
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
string name;
cin>>name;
cout<<name;
getche();
}
Эта программа правильно работает. Только что проверил. И вводит по русски и выводит
А вот как проверить какой язык, это я точно не знаю.
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
12.08.2012, 23:28  [ТС]     Русские буквы в консоли #8
Спасибо)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2012, 23:41     Русские буквы в консоли
Еще ссылки по теме:

C++ Считать русские и английские символы с консоли
Русские символы в консоли выводятся нормально, латиница - нет C++
C++ Неправильно считываются русские символы из консоли
C++ Русские символы в консоли на другом компьютере
Сделать, чтобы в консоли отображались русские буквы, а не кракозябры C++

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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.08.2012, 23:41     Русские буквы в консоли #9
CharToOem & OemToChar
 Комментарий модератора 
Тема закрыта!


Добавлено через 31 секунду
Русские шрифты в консоли
Yandex
Объявления
12.08.2012, 23:41     Русские буквы в консоли
Закрытая тема Создать тему
Опции темы

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