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

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

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

Кракозяблики на ноутбуке. Как избавиться? - C++

03.01.2014, 16:00. Просмотров 536. Ответов 15
Метки нет (Все метки)

Проблема в том, что ноутбук, несмотря на команду setlocale(0, "rus");, вместо нормальной кириллицы пишет непонятные символы. К примеру, вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main()
{
    setlocale(0, "rus");
    cout << "Я помню чудное мгновенье:" << endl
    << "Передо мной явилась ты," << endl
    << "Как мимолетное виденье," << endl
    << "Как гений чистой красоты." << endl;
    system("pause");
    return 0;
}
На компьютере появляется нормальная кириллица, а на ноутбуке нет. Что не так? И что сделать для того, чтобы ноутбук отображал кириллицу нормально?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2014, 16:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Кракозяблики на ноутбуке. Как избавиться? (C++):

Статический метод как точка входа в поток - как избавиться - C++
Привет всем.Вопрос такой: использую потоки в своей программе,они создаются и уничтожаются в классе, и в классе так же находится...

Как избавиться от предупреждения? - C++
char Number; double Result = atof(Number); Result=(-1)*Result; _itoa(Result,Number,10); SetWindowText(Edit,Number); ...

Как избавиться от ошибок?!?!?! - C++
При компиляции выдает кучу ошибок ,как это исправить?!?!?! #include&lt;iostream&gt; #include&lt;clocale&gt; #include&lt;stdio.h&gt; using...

Как избавиться от dynamic_cast? - C++
Ребят, у меня проблема такая! Не могу никак записать изменение в файл зависает, да и почему то по два раза выдает некоторые вещи да еще и...

Как избавиться от округления - C++
Доброго времени суток. У меня следующая проблема. pp = 0.1534886 + 151.5235 - 0.15668835467; pp имеет тип double, но в качестве...

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

15
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
03.01.2014, 16:20 #2
Цитата Сообщение от Chubbaka Посмотреть сообщение
И что сделать для того, чтобы ноутбук отображал кириллицу нормально?
Для начала расскажите чем отличает ноут от десктопа. Помимо габаритов конечно
0
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:25  [ТС] #3
Цитата Сообщение от Tulosba Посмотреть сообщение
Для начала расскажите чем отличает ноут от десктопа.
Извините, но я не знаю, какое отличие может иметь значение, а какое нет. Пожалуйста, скажите, какие параметры ноутбука вам нужно знать.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
03.01.2014, 16:28 #4
Chubbaka, ну так речь всё же о языке программирования, то очевидно что не кол-во гигабайт на видео карте.
1. среда разработки
2. компилятор
3. версия ОС ...
0
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:31  [ТС] #5
Компилятор на обоих стоит Dev-C++, ОС на компьютере - семерка, а на ноуте - XP. Что такое среда разработки я не особо понял.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
03.01.2014, 16:35 #6
Цитата Сообщение от Chubbaka Посмотреть сообщение
Dev-C++
Это как раз и есть среда разработки. http://en.wikipedia.org/wiki/Dev-C%2B%2B
А компилятор там MinGW в комплекте.
Dev-C++ из одного и того же дистрибутива ставили на оба компа?
0
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:36  [ТС] #7
Цитата Сообщение от Tulosba Посмотреть сообщение
Dev-C++ из одного и того же дистрибутива ставили на оба компа?
Да.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
03.01.2014, 16:39 #8
Попробуйте добавить перед выводом:
C++
1
2
SetConsoleCP(1251); 
SetConsoleOutputCP(1251);
0
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:46  [ТС] #9
Цитата Сообщение от Tulosba Посмотреть сообщение
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Высвечивается ошибка: 'setconsolecp' undeclared (first use this function) (Each undeclared identifier is reported only once for each function it appears in.) С SetConsoleOutputCP тоже самое.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
03.01.2014, 16:48 #10
C++
1
#include <windows.h>
0
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:52  [ТС] #11
Цитата Сообщение от Tulosba Посмотреть сообщение
#include <windows.h>
Всё равно ошибка. Может, из-за пиратской винды на ноуте?
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
03.01.2014, 17:00 #12
Цитата Сообщение от Chubbaka Посмотреть сообщение
Всё равно ошибка.
Та же самая?
1
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 17:01  [ТС] #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    //setlocale(0, "rus");
    setconsolecp(1251);
    SETCONSOLEOUTPUTCP(1251);
    cout << "Я помню чудное мгновенье:" << endl
    << "Передо мной явилась ты," << endl
    << "Как мимолетное виденье," << endl
    << "Как гений чистой красоты." << endl;
    system("pause");
    return 0;
}
Получилось вот так. На ПК всё работает, на буке, опять же, нет.

Добавлено через 21 секунду
Цитата Сообщение от Tulosba Посмотреть сообщение
Та же самая?
Да.
0
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
03.01.2014, 18:12 #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <windows.h>
std::ostream& operator<<(std::ostream& out, const char* str)
{
    char* s=new char[std::strlen(str)+1];
    AnsiToOem(str,s);
    return std::operator<<(out,s);
}
 
std::ostream& operator<<(std::ostream& out, std::string& str)
{
    return out<<str.c_str();
}
using namespace std;
 
int main() {
// your code here
 
system("pause");
return 0;
}
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.01.2014, 20:47 #15
Цитата Сообщение от Chubbaka Посмотреть сообщение
Получилось вот так. На ПК всё работает,
Вот это работает?
C++
1
2
setconsolecp(1251);
SETCONSOLEOUTPUTCP(1251);
Это даже не скомпилируется.
Копипаст не работает?
Цитата Сообщение от Tulosba Посмотреть сообщение
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
В свойствах консоли выбрать шрифт Lusida Console. Установка шрифта Lucida Console
DevC++ какая?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2014, 20:47
Привет! Вот еще темы с ответами:

Как избавиться от записи мусора? - C++
#include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include &lt;iostream&gt; ...

Как избавиться от мерцания в gdi? - C++
Как избавиться от мерцания в gdi? Пробовал делать двойную буфферизацию с помощью CreateCompatibleBitmap и BitBlt, но не рисовался даже...

Как избавиться от тернарных операторов? - C++
Нужно было написать код без if'ов, но не получилось(или их имитации, так точнее). Программа определяет принадлежит ли слово языку. А...

как избавиться от округления float - C++
#include &lt;iostream&gt; using std:: cin; using std:: cout; using std:: endl; int main() { cout &lt;&lt; &quot;123.008 + 0.0008 = &quot; &lt;&lt;...


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

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

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