Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2

Почему for_each() не выводит кирилицу

26.02.2012, 15:02. Показов 731. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
void show(const std::string & s);
int main()
{
    using namespace std;
    setlocale(0, "");
    string input;
    vector<string> words;
    cout<<"Ведите слова для добавления в вектор (q to exit): "<<endl;
    while (cin>>input && input != "q")
        words.push_back(input);
    cout<<"\nВы ввели следующие слова:"<<endl;
    for_each(words.begin(), words.end(), show);
    system("pause");
    return 0;
}
void show(const std::string & s)
{
    std::cout<<s<<" ";
}
Алгоритм for_each() английские буквы отображает нормально, а русские - с "крякозябрами"?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.02.2012, 15:02
Ответы с готовыми решениями:

Не понимаю почему неправильно работает for_each по списку с удалением элемента
Пишу тут потихоньку код для диплома, и столкнулся с такой проблемой: При попытке уничтожить последний или предпоследний блок всё...

почему Питон не переваривает кирилицу?
я новичок. столкнулся с принеприятнейшим моментом - комментарии в коде нужно отфильтровывать иначе питон просто в ауте, даже нет ругани с...

Подскажите, почему не запускается и почему не выводит решение по частям?
uses crt; label k; var x,y,c,b,a:real; k1,R1,R2,R3:integer; begin k: clrscr; writeln (' 1) 1-Задача'); writeln (' ...

6
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
26.02.2012, 15:10
Цитата Сообщение от yuron_477 Посмотреть сообщение
Алгоритм for_each()
Виноват не std::for_each. Почитайте здесь Русские шрифты в консоли
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
26.02.2012, 15:20  [ТС]
Да сама программа русские символы отображает (я использую setlocale(0, "")), а неотображаются те символы которые были добавлены в vector<string> и выводятся через for_each(words.begin(), words.end(), show);
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
26.02.2012, 15:28
Замените 16-ую строчку на
C++
1
std::cout << words[0] << std::endl;
И Вы поймете, что std::for_each здесь не причем.
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
26.02.2012, 15:41  [ТС]
Незнаю, может у меня Visual Studio "накрылась".
Вот что выводит у меня: (добавил строчку std::cout << "words[0]: " << words[0] << std::endl; )
Получается что у меня vector<string> как то не так запихивает объекты string в себя.
Миниатюры
Почему for_each() не выводит кирилицу  
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
26.02.2012, 16:14
yuron_477, Тебе необходимо перекодировать символы. В этой теме точно не нашел ответ Русские шрифты в консоли ? Поищи в поиске, такое делали уже не раз.

Добавлено через 19 минут
Можно воспользоваться http://ru.wikipedia.org/wiki/Iconv если не нужен кросплатформ.

Добавлено через 2 минуты
Это для Си. Для С++ можно использовать класс locale.
0
CEO SOVAZ Corp.
 Аватар для sovaz1997
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
26.02.2012, 17:10
setlocale(0,"")

Всегда русский язык под рукой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2012, 17:10
Помогаю со студенческими работами здесь

Почему выводит 0, а не 1?
using System; namespace CSrharpApplicationTest { public class Generic&lt;T&gt; { public static int X { get; set; } ...

Почему не выводит m?
С начала суток прошло N секунд (N — целое). Найти количество полных минут, прошедших с начала суток. #include &lt;iostream&gt; ...

Почему не выводит?
В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные — в конец с сохранением порядка следования....

почему выводит 0?
Даны неотрицательные целые числа a, b. Найти F(a, b), где F=(M!+N!)/(M+N)! #include &lt;iostream&gt; using namespace std; int fact(int...

почему выводит 0?
Даны неотрицательные целые числа a, b. Найти F(a, b), где F=(M!+N!)/(M+N)! #include &lt;iostream&gt; using namespace std; int fact(int...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru