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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
#1

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

20.06.2013, 12:30. Просмотров 800. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2013, 12:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отображение кириллических символов из файла (C++):

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

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

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

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

Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных букв, цифр, знаков переноса, прочих символов. - C++
Помогите, пожалуйста, написать программу :scratch: Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных...

Отображение символов (букв) - C++
Почему в BC++ 3.1 в полноэкранном режиме неправильно отображаются символы (русские буквы)? Причём в оконный режим не переключается...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
20.06.2013, 12:49 #2
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 / 7
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
20.06.2013, 12:50 #3
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  [ТС] #4
Цитата Сообщение от 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
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 13:27 #5
Русские шрифты в консоли
0
RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
20.06.2013, 17:12  [ТС] #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Мне это реализовать придется еще и в приложении Windows Froms, так что этот вариант отпадает
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 17:20 #7
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Мне надо прочитать текст с кириллическими символами из файла и вывести на консоль (а в дальнейшем и в приложение Windows Forms - но это не имеет особого значения в данной ситуации).
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Вот код небольшого консольного приложения:
Тогда вопрос нужно по другому поставить, а то непонятна проблема.
0
RostakaGmfun
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 10
20.06.2013, 17:26  [ТС] #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Тогда вопрос нужно по другому поставить, а то непонятна проблема.
Действительно слегка протупил
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
20.06.2013, 17:27 #9
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  [ТС] #10
Добавлено через 37 секунд

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

Добавлено через 8 минут
Вывод тот же что и на консоле:
п»ї========================================================================
P.S
Никогда не думал, что возникнет проблема с отображением текста
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
20.06.2013, 17:51 #11
RostakaGmfun, если на консоли - то свойства - шрифт Lucida Console. А редактор в IDE в какой кодировке?
Вообще код не помешало бы увидеть.
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 18:22 #12
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  [ТС] #13
Вот, кстати, нашел очень похожий на мой вопрос - http://www.cyberforum.ru/cpp-builder/thread55057.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
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
20.06.2013, 19:19 #14
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Кодировка файла - Юникод
сохраните все в ANSI
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.06.2013, 19:21 #15
Цитата Сообщение от RostakaGmfun Посмотреть сообщение
Код выше не помог - сплошные кракозябры.
Именно мой код пробовали?
В свойствах консоли установили шрифт Lucida Console?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2013, 19:21
Привет! Вот еще темы с ответами:

Корретное отображение русских символов - C++
Здравствуйте, подскажите пожалуйста как моножно решить следующую проблемму: Написал программу, которая запрашивает и вывожит информацию....

Неправильное отображение русских символов в string - C++
#include &quot;stdafx.h&quot; #include &quot;string&quot; #include &quot;iostream&quot; using namespace std; int _tmain(int argc, _TCHAR* argv) { string...

Отображение ASCII символов в двоичном коде - C++
Добрый день. Есть программа, которая отображает двоичный код ASCII символа. #include &lt;iostream&gt; using namespace std; struct...

Прямое и обратное отображение набранных символов в консоли - C++
#include &lt;iostream&gt; using namespace std; int main() { string s; int i; cin&gt;&gt;s; while (i=length(s)&lt;=1) cout&lt;&lt;s; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.06.2013, 19:21
Ответ Создать тему
Опции темы

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