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

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

Восстановить пароль Регистрация
 
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:00     Кракозяблики на ноутбуке. Как избавиться? #1
Проблема в том, что ноутбук, несмотря на команду 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;
}
На компьютере появляется нормальная кириллица, а на ноутбуке нет. Что не так? И что сделать для того, чтобы ноутбук отображал кириллицу нормально?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2014, 16:00     Кракозяблики на ноутбуке. Как избавиться?
Посмотрите здесь:

Как избавиться от ошибки компоновщика? C++
что за ошибка? как от нее избавиться? C++
C++ Как избавиться от записи мусора?
Как избавиться от предупреждения? C++
Как избавиться от ошибок?!?!?! C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.01.2014, 16:20     Кракозяблики на ноутбуке. Как избавиться? #2
Цитата Сообщение от Chubbaka Посмотреть сообщение
И что сделать для того, чтобы ноутбук отображал кириллицу нормально?
Для начала расскажите чем отличает ноут от десктопа. Помимо габаритов конечно
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:25  [ТС]     Кракозяблики на ноутбуке. Как избавиться? #3
Цитата Сообщение от Tulosba Посмотреть сообщение
Для начала расскажите чем отличает ноут от десктопа.
Извините, но я не знаю, какое отличие может иметь значение, а какое нет. Пожалуйста, скажите, какие параметры ноутбука вам нужно знать.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.01.2014, 16:28     Кракозяблики на ноутбуке. Как избавиться? #4
Chubbaka, ну так речь всё же о языке программирования, то очевидно что не кол-во гигабайт на видео карте.
1. среда разработки
2. компилятор
3. версия ОС ...
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:31  [ТС]     Кракозяблики на ноутбуке. Как избавиться? #5
Компилятор на обоих стоит Dev-C++, ОС на компьютере - семерка, а на ноуте - XP. Что такое среда разработки я не особо понял.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.01.2014, 16:35     Кракозяблики на ноутбуке. Как избавиться? #6
Цитата Сообщение от Chubbaka Посмотреть сообщение
Dev-C++
Это как раз и есть среда разработки. http://en.wikipedia.org/wiki/Dev-C%2B%2B
А компилятор там MinGW в комплекте.
Dev-C++ из одного и того же дистрибутива ставили на оба компа?
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:36  [ТС]     Кракозяблики на ноутбуке. Как избавиться? #7
Цитата Сообщение от Tulosba Посмотреть сообщение
Dev-C++ из одного и того же дистрибутива ставили на оба компа?
Да.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.01.2014, 16:39     Кракозяблики на ноутбуке. Как избавиться? #8
Попробуйте добавить перед выводом:
C++
1
2
SetConsoleCP(1251); 
SetConsoleOutputCP(1251);
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 тоже самое.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.01.2014, 16:48     Кракозяблики на ноутбуке. Как избавиться? #10
C++
1
#include <windows.h>
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
03.01.2014, 16:52  [ТС]     Кракозяблики на ноутбуке. Как избавиться? #11
Цитата Сообщение от Tulosba Посмотреть сообщение
#include <windows.h>
Всё равно ошибка. Может, из-за пиратской винды на ноуте?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.01.2014, 17:00     Кракозяблики на ноутбуке. Как избавиться? #12
Цитата Сообщение от Chubbaka Посмотреть сообщение
Всё равно ошибка.
Та же самая?
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 Посмотреть сообщение
Та же самая?
Да.
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;
}
alsav22
5282 / 4801 / 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++ какая?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2014, 12:16     Кракозяблики на ноутбуке. Как избавиться?
Еще ссылки по теме:

Статический метод как точка входа в поток - как избавиться C++
TextOut как избавиться от выводимого им мусора? C++
C++ Как избавиться от dynamic_cast?

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

Или воспользуйтесь поиском по форуму:
Chubbaka
0 / 0 / 0
Регистрация: 30.12.2013
Сообщений: 21
04.01.2014, 12:16  [ТС]     Кракозяблики на ноутбуке. Как избавиться? #16
Цитата Сообщение от alsav22 Посмотреть сообщение
В свойствах консоли выбрать шрифт Lusida Console
Заработало! Премного вам благодарен.
Цитата Сообщение от alsav22 Посмотреть сообщение
Копипаст не работает?
Я с ноутбука код переписывал. Думал, что разницы между большими и маленькими буквами нет. Ошибся.
Yandex
Объявления
04.01.2014, 12:16     Кракозяблики на ноутбуке. Как избавиться?
Ответ Создать тему
Опции темы

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