Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
 Аватар для RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10

Отображение кириллических символов из файла

20.06.2013, 12:30. Показов 8608. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане!
У меня возник небольшой вопрос.
Мне надо прочитать текст с кириллическими символами из файла и вывести на консоль (а в дальнейшем и в приложение Windows Forms - но это не имеет особого значения в данной ситуации). Проблема в том, что кириллица отображается неправильно.
Вот код небольшого консольного приложения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
#include <fstream>
#include <iostream>
#include <stdio.h>
#include <tchar.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
                    using namespace std;
                    ifstream f2;
                    f2.open("ReadMe.txt",ios::in);
                    string str;
                    f2>>str;
                    cout<<str;
                    cin.get();
                    return 0;
}
Результат работы приложения - набор кракозябр.
Надеюсь на помощь.
Спасибо за внимание.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.06.2013, 12:30
Ответы с готовыми решениями:

Неверное отображение кириллических символов в консоли
Добавление языка в программе есть, а он каракули выводит! Что я делаю не так? #include&lt;iostream&gt; #include &lt;fstream&gt; ...

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

Непонятка с кодами кириллических символов
Писал программу для перевода символов в верхний регистр. Для латиницы она работает, но странно ведет себя с кирилицей. Собственно код: ...

16
 Аватар для igorrr37
2872 / 2019 / 991
Регистрация: 21.12.2010
Сообщений: 3,751
Записей в блоге: 10
20.06.2013, 12:49
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <string>
#include <fstream>
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
 
int main()
{
    using namespace std;
    ifstream f2;
    f2.open("in.txt");
    string str;
    f2>>str;
    CharToOemA(str.c_str(), &str[0]);
    cout << str;
    cin.get();
    return 0;
}
0
 Аватар для behemoth
44 / 30 / 18
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
20.06.2013, 12:50
C++
1
setlocale(LC_ALL,"");
This function is found in <locale.h>.
0
 Аватар для RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
20.06.2013, 13:08  [ТС]
Цитата Сообщение от igorrr37 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <string>
#include <fstream>
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
 
int main()
{
    using namespace std;
    ifstream f2;
    f2.open("in.txt");
    string str;
    f2>>str;
    CharToOemA(str.c_str(), &str[0]);
    cout << str;
    cin.get();
    return 0;
}
К сожалению, CharToOemA() не помогает.

Добавлено через 3 минуты
Цитата Сообщение от behemoth Посмотреть сообщение
C++
1
setlocale(LC_ALL,"");
This function is found in <locale.h>.
Насколько я знаю,эта функция только для консольных приложений, а мне еще надо это в Windows Froms использовать.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 13:27
Русские шрифты в консоли
0
 Аватар для RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
20.06.2013, 17:12  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Мне это реализовать придется еще и в приложении Windows Froms, так что этот вариант отпадает
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 17:20
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Мне надо прочитать текст с кириллическими символами из файла и вывести на консоль (а в дальнейшем и в приложение Windows Forms - но это не имеет особого значения в данной ситуации).
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Вот код небольшого консольного приложения:
Тогда вопрос нужно по другому поставить, а то непонятна проблема.
0
 Аватар для RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
20.06.2013, 17:26  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Тогда вопрос нужно по другому поставить, а то непонятна проблема.
Действительно слегка протупил
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.06.2013, 17:27
RostakaGmfun, если с формами, то лучше всего
C++
1
2
3
4
#include <windows.h>
 
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Добавлено через 37 секунд
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Windows Froms
From what?
0
 Аватар для RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
20.06.2013, 17:38  [ТС]
Добавлено через 37 секунд

From what?
Упс, опечатка...

Добавлено через 8 минут
Вывод тот же что и на консоле:
п»ї===================================== ===================================
P.S
Никогда не думал, что возникнет проблема с отображением текста
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.06.2013, 17:51
RostakaGmfun, если на консоли - то свойства - шрифт Lucida Console. А редактор в IDE в какой кодировке?
Вообще код не помешало бы увидеть.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 18:22
RostakaGmfun, из файла вывод не получается? Если не из файла, то как? Файл в какой кодировке?

Добавлено через 4 минуты
Такой код как?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
#include <string>
#include <Windows.h>
using namespace std; 
 
int main()
{
   SetConsoleCP(1251);                
   SetConsoleOutputCP(1251);
 
   string str;
   cout << "Введите русский текст: ";
   getline(cin, str);
   cout << str << endl;
   
   system("pause");
   return 0;
}
0
 Аватар для RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
20.06.2013, 19:18  [ТС]
Вот, кстати, нашел очень похожий на мой вопрос - https://www.cyberforum.ru/cpp-... 55057.html
Я собираюсь делать вывод текста приблизительно также:
C++
1
2
TextBox^ textbox = gcnew TextBox();
 textbox->Text = text; //text - то, что прочитано из файла
Добавлено через 9 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
RostakaGmfun, из файла вывод не получается? Если не из файла, то как? Файл в какой кодировке?

Добавлено через 4 минуты
Такой код как?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
#include <string>
#include <Windows.h>
using namespace std; 
 
int main()
{
   SetConsoleCP(1251);                
   SetConsoleOutputCP(1251);
 
   string str;
   cout << "Введите русский текст: ";
   getline(cin, str);
   cout << str << endl;
   
   system("pause");
   return 0;
}
Кодировка файла - Юникод (создан ведь в Блокноте),чтение из файла и вывод прочитанного мне как раз и нужен
Код выше не помог - сплошные кракозябры.

Добавлено через 1 минуту
Цитата Сообщение от MrGluck Посмотреть сообщение
RostakaGmfun, если на консоли - то свойства - шрифт Lucida Console. А редактор в IDE в какой кодировке?
Вообще код не помешало бы увидеть.
Visual Studio 2010 , кодировка - Юникод.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
20.06.2013, 19:19
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Кодировка файла - Юникод
сохраните все в ANSI
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 19:21
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Код выше не помог - сплошные кракозябры.
Именно мой код пробовали?
В свойствах консоли установили шрифт Lucida Console?
0
 Аватар для RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
20.06.2013, 19:33  [ТС]
Цитата Сообщение от MrGluck Посмотреть сообщение
сохраните все в ANSI
Не помогло.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 20:15
На вопросы ответьте.
Цитата Сообщение от alsav22 Посмотреть сообщение
Именно мой код пробовали?
В свойствах консоли установили шрифт Lucida Console?
Добавлено через 6 минут
Раньше ввод/вывод русских символов в консоле делали?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.06.2013, 20:15
Помогаю со студенческими работами здесь

Некоректное считывание кириллических символов
Здравствуйте. Вот в такой функции: std::vector&lt;std::string&gt; CreateFileList(std::string p, std::vector&lt;std::string&gt;&amp;...

Неверное отображение кириллических символов при чтении из SQLite
Дано: Одна программа написана на С++ Builder XE под виндой. Операторы заполняют базу данных SQLite то же под виндой. После этого файл...

Краозябры кириллических символов в БД
Копался на форумах, но не смог найти нормальный ответ на этот вопрос. Вот таким вот образом я добавляю запись в БД: ...

Вывод кириллических символов из строки
Печатаю текст на русском языке и вывожу его в Label - все работает. Buf:=Edit1.Text; Label1.Caption:=Buf; Пытаюсь работать с...

Вывод кириллических символов в Bitmap
Создаю таблицу из 256 символов и рисую её в Bitmap. Да вот надо, чтобы после 127-го шёл русский набор символов. Шрифту ставлю чарсет...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru