Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   прблема с кодировкой в С++ (http://forum.oszone.net/showthread.php?t=116334)

morgan1991 05-09-2008 15:17 891688

прблема с кодировкой в С++
 
Помогите плиз:
Цитата:

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

Drongo 05-09-2008 17:50 891810

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-кодировку.
Вы для начала вводите английские символы, и проще и удобнее

morgan1991 05-09-2008 22:22 892051

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

XPEHOMETP 05-09-2008 23:35 892101

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

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

morgan1991 06-09-2008 00:14 892112

Да не всё это ерунда, у меня Microsoft Visual C++ 6.0 но нет такого
Цитата:

Цитата Savant
Если Вы про консольный режим, то:
1. Откройте исходник
2. File -> Advanced Save Options -> Encoding -> Cyrillic (DOS) - Codepage 866 »

вот мне интересно можно ли изменить кодировку ни в самой программе а в програмной среде Microsoft Visual C++ 6.0??

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

Drongo 06-09-2008 00:39 892121

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


Время: 14:33.

Время: 14:33.
© OSzone.net 2001-