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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
NIER
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 25
#1

Ввод и вывод текста русскими буквами - C++

22.11.2012, 18:10. Просмотров 2354. Ответов 12
Метки нет (Все метки)

Уже неделю лазаю туда-сюда, в поисках решения. Посмотрите пожалуйста, что можно добавить чтобы в консоли выводили русские буквы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
using namespace std;
//char *Rus(const char *str);
//char str_rus[256];
char st[80]; int sg=0,sm=0,i,j,dan=0;
  char sog[]="АаЕеЁёИиОоУуЫыЭэЮюЯяБбВвГгДдЖжЗзЙйКкЛлМмНнПпРрСсТтФфХхЦцЧчШшЩщЬьЪъ";
  char sim[]=",.:;/+)(-*1234567890!~@#$%&?";
void main()
{        
  setlocale(LC_ALL,"RUSSIAN");
  //SetConsoleCP(1251);
  cin.getline(st,79,'\n');
 
  for(i=0; i<strlen(st); i++)
        for(j=0; j<strlen(sog); j++)
                        if(st[i]==sog[j])
                                sg++;
  for(i=0; i<strlen(st); i++)
        for(j=0; j<strlen(sim); j++)
                        if(st[i]==sim[j])
                                sm++;
   int len=strlen(st);
   for(i=0;i<len;i++) 
   {
     st[i]=(' ')+('_')-(st[i]);
     cout <<st[i];
   } 
  cout <<"\n"<<"Букв=" <<sg <<"\n";  
  cout <<"Символов="<<sm<<"\n";  
  
}
//char *Rus(const char *str)
//{
//  AnsiToOem(str,str_rus);
//  return str_rus;
//}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 18:10     Ввод и вывод текста русскими буквами
Посмотрите здесь:

ввод-вывод текста C++
C++ fopen и путь к файлу c русскими буквами
C++ Вывод текста в консоль цветными буквами!
C++ Дан файл, содержащий текст, записанный строчными русскими буквами. Получить в другом файле тот же текст, записанный заглавными буквами
C++ Регистронезависимое сравнение строк с русскими буквами
как вывести русскими буквами слово С++ C++
C++ Вывод русскими буквами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
22.11.2012, 18:15     Ввод и вывод текста русскими буквами #2
C++
1
setlocale(LC_CTYPE,"Rus");
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
22.11.2012, 18:16     Ввод и вывод текста русскими буквами #3
В начале программы вместо setlocale(LC_ALL,"RUSSIAN"); поставь
C++
1
SetConsoleCP(1251); SetConsoleOutputCP(1251);
И в самой консоле установи шрифт Lucida Console
NIER
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 25
22.11.2012, 18:30  [ТС]     Ввод и вывод текста русскими буквами #4
Цитата Сообщение от V.A.L.I.D Посмотреть сообщение
В начале программы вместо setlocale(LC_ALL,"RUSSIAN"); поставь
C++
1
SetConsoleCP(1251); SetConsoleOutputCP(1251);
И в самой консоле установи шрифт Lucida Console
я уже пробовал setconsolecp, и setlocale пробовал ничего не помогает. просто не понимаю

Добавлено через 11 минут
В консоли теперь вот что появилось:
Тараачын
*џЏџџ€„’ - а как же эти символы?
Букв=8
Символов=0
Для продолжения нажмите любую клавишу . . .
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
22.11.2012, 18:34     Ввод и вывод текста русскими буквами #5
А в самой консоле изменил шрифт на Lucida Console? У меня нормально показывает "Свойства -> Шрифт -> Lucida Console"
NIER
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 25
22.11.2012, 18:36  [ТС]     Ввод и вывод текста русскими буквами #6
Цитата Сообщение от V.A.L.I.D Посмотреть сообщение
А в самой консоле изменил шрифт на Lucida Console? У меня нормально показывает "Свойства -> Шрифт -> Lucida Console"
да, изменил.

Добавлено через 29 секунд
Там тоже слово выходит?
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
22.11.2012, 18:44     Ввод и вывод текста русскими буквами #7
Цитата Сообщение от NIER Посмотреть сообщение
Там тоже слово выходит?
Я сейчас у себя проверил в Visual Studio. Без ошибок, по русски печатает. Что то не пойму почему у вас так получается
NIER
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 25
22.11.2012, 18:46  [ТС]     Ввод и вывод текста русскими буквами #8
отправьте пожалуйста, свою исправленную версию..
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
22.11.2012, 18:56     Ввод и вывод текста русскими буквами #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include "iostream"
#include "windows.h"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251); SetConsoleOutputCP(1251);
 
    char st[80];
 
    cin.getline(st, 79, '\n');
 
    cout << st << endl; // по русски печатает
    cout << "Букв " << 3 << endl;  // здесь тоже нормально
 
    system("pause");
    return 0;
}
Это не точно ваша программа, но сам текст она по русски печатает а не кракозябры.
OgStyle
11 / 5 / 1
Регистрация: 18.11.2012
Сообщений: 114
22.11.2012, 18:59     Ввод и вывод текста русскими буквами #10
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
   int main()
      {
         setlocale(LC_ALL,"Russian"); //установка русской локализации непосредственно в программе
         cout<<"Кот базилио";
 
         return 0;
       }
не могу только точно сказать нужно использовать windows.h или нет. У меня работает без, но на студии 2008 кажется нужно прописывать
NIER
2 / 2 / 0
Регистрация: 11.10.2012
Сообщений: 25
22.11.2012, 19:06  [ТС]     Ввод и вывод текста русскими буквами #11
Всем спасибо
TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
22.11.2012, 19:08     Ввод и вывод текста русскими буквами #12
Как можно незаметить тему с пометкой "важно"в этом разделе? Русские шрифты в консоли - это уже обсуждалось.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2012, 19:28     Ввод и вывод текста русскими буквами
Еще ссылки по теме:

C++ Сравнивает ли значения функция srtcmp, если они введены русскими буквами?
Неправильно работает функция strcmp c русскими буквами C++
Корректная работа программы с русскими буквами C++
C++ Программа не хочет работать с русскими буквами
Зашифровать текст, записанный русскими буквами и знаками препинания C++

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

Или воспользуйтесь поиском по форуму:
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
22.11.2012, 19:28     Ввод и вывод текста русскими буквами #13
NIER, Я кажется понял почему в вашей программе не печатает по русски строку. В 28 строке эта строка изменяется. И неизвестно что будет после этого цикла:
C++
1
2
3
4
5
6
   int len=strlen(st);
   for(i=0;i<len;i++) 
   {
     st[i]=(' ')+('_')-(st[i]); // какой символ здесь будет?
     cout <<st[i];
   }
Yandex
Объявления
22.11.2012, 19:28     Ввод и вывод текста русскими буквами
Ответ Создать тему
Опции темы

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