Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - прблема с кодировкой в С++

Ответить
Настройки темы
C/C++ - прблема с кодировкой в С++

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Помогите плиз:
Цитата:
#include<iostream>
using std:: cout;
using std:: cin;
int main()
{
int c;
cout << "C++ - Программирование - это сила !\a";
cin >>c;
return 0;
}
Почему вместо "C++ - Программирование - это сила !", отображается набор иероглифов?
Что такое скодировкой? Помогите надо плиз.

-------
Хочу научиться писать драйвера на с++


Отправлено: 15:17, 05-09-2008

 

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


morgan1991, Обязательно нужно по русски? Да, первый раз, когда я начинал изучение С++, я тоже несколько смутился, когда пример в книге на скрине был на русском, а в реале же получились непонятные символы, нужно поменять кодировку строки:
Код: Выделить весь код
"C++ - Программирование - это сила !\a"
на
Код: Выделить весь код
"C++ - Џа®Ја ¬¬Ёа®ў *ЁҐ - нв® бЁ«  !\a"
Тогда всё будет в порядке, перекодировывать можно текстовым редактором Bred
Код: Выделить весь код
#include<iostream>
using std:: cout;
using std:: cin;
int main()
{
int c;
cout << "C++ - Џа®Ја ¬¬Ёа®ў *ЁҐ - нв® бЁ«  !\a";
cin >>c;
return 0;
}
А можно сделать так:

Код: Выделить весь код
#include <iostream>
using std::cout;
using std::cin;

// Функция отображения русских символов--------------------------------------
char* rus(char* st)
{
    unsigned char* p = st;  // при объявлении символов как char русские буквы
                                      // кодируются отрицательными числами
    while( *p ){
        if(*p >= 192) // здесь русская буква
            if(*p <= 239)
               *p -= 64;
            else
               *p -= 16;
        p++;
    }
    return st;
}

int main()
{
   int c;

   cout<<rus("C++ - Программирование - это сила !");
   cin>>c;

   return 0;
}
Но это уже указатели, а судя по всему вы не дошли в изучению до этого, и по честному прокатит только первый вариант с перекодировыванием русским символов в OEM-кодировку.
Вы для начала вводите английские символы, и проще и удобнее

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:50, 05-09-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


СПС помогло в блокноте, а как всётаки через указатели зделать я их прошёл уже?

-------
Хочу научиться писать драйвера на с++


Отправлено: 22:22, 05-09-2008 | #3


Ветеран


Сообщения: 1805
Благодарности: 146

Профиль | Отправить PM | Цитировать


Такой вопрос (про кодировки) здесь возникает регулярно. Смотрим хотя бы здесь:

http://forum.oszone.net/thread-72123.html

Отправлено: 23:35, 05-09-2008 | #4


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Да не всё это ерунда, у меня Microsoft Visual C++ 6.0 но нет такого
Цитата Savant:
Если Вы про консольный режим, то:
1. Откройте исходник
2. File -> Advanced Save Options -> Encoding -> Cyrillic (DOS) - Codepage 866 »
вот мне интересно можно ли изменить кодировку ни в самой программе а в програмной среде Microsoft Visual C++ 6.0??

Да и все коды что указаны там уже устарели((

-------
Хочу научиться писать драйвера на с++


Отправлено: 00:14, 06-09-2008 | #5


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


morgan1991,
1. Кириллица?
2. Win32 API - MS + C++ = Kpako3@бJluku, проблемы в консоле с русским
3. Подскажите заголовок функции AnsiToOem
4. Почему вместо русских букв в консольном приложении выводится мусор?
Думаю этого хватит, вообще ищите в сторону CharToOem

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 07-09-2008 в 16:37. Причина: Добавил ссылку...


Отправлено: 00:39, 06-09-2008 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - прблема с кодировкой в С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прблема с наушниками)) Bochkov Непонятные проблемы с Железом 7 28-04-2008 23:25
Asus c90s - прблема с перегревом lipatov Ноутбуки 15 10-01-2008 22:26
[решено] Прблема с Рабочим столом storms Microsoft Windows 95/98/Me (архив) 4 30-06-2006 10:21
Прблема с Internet Explorer winner82 Microsoft Windows 2000/XP 4 30-05-2006 08:12
Прблема с пхп. DTF Вебмастеру 4 20-10-2004 09:11




 
Переход