Войти

Показать полную графическую версию : прблема с кодировкой в С++


morgan1991
05-09-2008, 15:17
Помогите плиз:
#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
morgan1991, Обязательно нужно по русски? Да, первый раз, когда я начинал изучение С++, я тоже несколько смутился, когда пример в книге на скрине был на русском, а в реале же получились непонятные символы, нужно поменять кодировку строки:
"C++ - Программирование - это сила !\a" на "C++ - Џа®Ја ¬¬Ёа®ў *ЁҐ - нв® бЁ« !\a" Тогда всё будет в порядке, перекодировывать можно текстовым редактором Bred (http://www.astonshell.ru/freeware/bred3/)
#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
СПС помогло в блокноте, а как всётаки через указатели зделать я их прошёл уже?

XPEHOMETP
05-09-2008, 23:35
Такой вопрос (про кодировки) здесь возникает регулярно. Смотрим хотя бы здесь:

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

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

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

Drongo
06-09-2008, 00:39
morgan1991,
1. Кириллица? (http://forum.oszone.net/showthread.php?t=42553&highlight=oemToChar)
2. Win32 API - MS + C++ = Kpako3@бJluku, проблемы в консоле с русским (http://forum.oszone.net/showthread.php?t=87493&highlight=chartooem)
3. Подскажите заголовок функции AnsiToOem (http://forum.oszone.net/showthread.php?t=86261&highlight=chartooem)
4. Почему вместо русских букв в консольном приложении выводится мусор? (http://rsdn.ru/article/qna/ui/concp.xml)
Думаю этого хватит, вообще ищите в сторону CharToOem




© OSzone.net 2001-2012