Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/140: Рейтинг темы: голосов - 140, средняя оценка - 4.96
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1

Ввод кириллицы в С++

15.08.2013, 17:42. Показов 28859. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При вводе значения переменной типа string или char кириллицей всегда выдает кракозябры.
setlocale помогает только для вывода (cout,printf работают безотказно).
Ничего не нашел полезного в гугле, везде либо предлагают изменить раскладку на досовскую 866 (работает до первого сохранения .срр файла), либо какие то сложные и непонятные функции. Как лечить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.08.2013, 17:42
Ответы с готовыми решениями:

Ввод/вывод кириллицы
Здравствуйте. Ситуация такая. Я ввожу/вывожу символьный массив подобным образом: char a; cin >> a; cout << a; ...

Ввод кириллицы в консоли
Есть задание создать некоторую базу. Базу эту можно дописывать. Но возникает проблема ввода кириллицы с консоли. Пробовал это решить...

Организовать ввод кириллицы в массив
#include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #define sz2 20 int _tmain(int argc, _TCHAR*...

28
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
16.08.2013, 09:15
Студворк — интернет-сервис помощи студентам
Среда программирования? Какая кодировка в редакторе и консоле?
0
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
16.08.2013, 12:48  [ТС]
Цитата Сообщение от vua72 Посмотреть сообщение
Среда программирования? Какая кодировка в редакторе и консоле?
Цитата Сообщение от Dragokas Посмотреть сообщение
CHELOVEKPAUK, а в стандартных диалогах Windows с русским текстом проблем нет?
Цитата Сообщение от alsav22 Посмотреть сообщение
CHELOVEKPAUK, среда какая, ОС какая? Как настройки шрифта в консоли делаете? Как .exe запускаете? Скрин покажите с выводом этого кода и что вводите.
Держите скрин
Миниатюры
Ввод кириллицы в С++  
0
 Аватар для Hugra
50 / 50 / 9
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
16.08.2013, 12:53
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Держите скрин
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <Windows.h>
 
#define rus SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
using std::cout; using std::cin; using std::endl;
using std::string;
 
int main()
{
    rus;
    string text;
    cout << "Вывод данных через cout/printf работает хорошо\n";
    getline(cin,text);
    cout << "А вот вывод введенных данных не очень:\n";
    cout << text << "\n\n";
    system("PAUSE");
    return 0;
}
1
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
16.08.2013, 12:55
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Держите скрин
#include <Windows.h>

SetConsoleCP(1251);
SetConsoleOutputCP(1251);
0
16.08.2013, 13:04

Не по теме:

CHELOVEKPAUK, вы посты, вообще, читаете? Уже столько раз было написано всё...

1
16.08.2013, 13:41

Не по теме:

alsav22, вот так и разбухают темы на ровном месте.

0
 Аватар для CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
16.08.2013, 13:49  [ТС]
Цитата Сообщение от Hugra Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <Windows.h>
 
#define rus SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
using std::cout; using std::cin; using std::endl;
using std::string;
 
int main()
{
    rus;
    string text;
    cout << "Вывод данных через cout/printf работает хорошо\n";
    getline(cin,text);
    cout << "А вот вывод введенных данных не очень:\n";
    cout << text << "\n\n";
    system("PAUSE");
    return 0;
}
Спасибо, вот это помогло. А до этого почему то не получалось с setconsole без define.
0
16.08.2013, 13:49

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение

Не по теме:

alsav22, вот так и разбухают темы на ровном месте.

Да, уж...

0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
16.08.2013, 14:09
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
А до этого почему то не получалось с setconsole без define.
Если убрать строку 5, а вместо 12ой написать:
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
результат будет тот же. И дефайн тут не причем.
Для решения проблемы достаточно было прочитать сообщение #3.
Будьте внимательнее в будущем.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.08.2013, 14:09

Ввод/вывод кириллицы через консоль
Вот простейший пример ввода и вывода слова(символа) через консоль # include &lt;iostream&gt; # include &lt;locale&gt; using namespace...

Ввод в строки и вывод в консоль кириллицы
Есть программа для подсчета количества букв в введенной строке,но если вводить строку на Русском языке выводит непонятные символы,но если...

Кодировки кириллицы: CP866, Windows-1251, ввод/вывод
Доброго времени суток! Помогите, пожалуйста, разобраться с кодировками. Каким образом в одном коде можно реализовать вывод кириллицы,...

Ввод в структуру кириллицы
Русский буквы в программе выдаёт нормально, а при вводе их в структуру -- непонятные символы. Как это исправить? #include &lt;stdio.h&gt;...

Ввод кириллицы с клавиатуры
Добрый день, уважаемые форумчане! Вопрос мой касается ввода русских букв с клавиатуры. Дело в том, что программа должна работать под...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru