1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Киррилица В Консоли

Тема в разделе "С и С++", создана пользователем AcTiV, 26 дек 2012.

  1. AcTiV

    AcTiV Гость

    Репутация:
    0
    общий вопрос, почему я ввожу нормально текст, а он выводится абракадаброй

    скрин (на скрине же и исходник)
    Киррилица В Консоли
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    прочитай про setlocale
    гуглить можно "cplusplus locale"
     
  3. AcTiV

    AcTiV Гость

    Репутация:
    0
    покопался в нете и нашел ответ

    добавляем в библиотеку

    Код:
    #include <windows.h>
    это пихаем в main()

    Код:
    SetConsoleCP(1251); // Ввод с консоли в кодировке 1251
    SetConsoleOutputCP(1251); // Вывод на консоль в кодировке 1251. Нужно только будет изменить шрифт консоли на Lucida Console или Consolas

    после этого что у вас там за исходник мне не гадать, наводим мышкой на свойства и вкладка шрифт
    Киррилица В Консоли

    думаю после этого вы найдете где изменить шрифт на Lucida Console или Consolas
     
  4. rrrFer

    rrrFer Гость

    Репутация:
    0
    ну да, так тоже можно :)
     
  5. alekssgor

    alekssgor Well-Known Member

    Репутация:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    118
    Симпатии:
    0
    У меня сама Windows 7 каракули выводит в CMD например при выполнении команды nslookup!!!
    Вот функция для кириллицы с одним исключением работает в C++Builder, в DEV- C++ выдаёт ошибку при компиляции!!!
    В принципе для консольного разницы нет что там что там занимает 500 кб
    Код:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    char* rus(char* st)
    {
    unsigned char* p = st; // Ошибка преобразования типов в DEV-C++ выдаёт ошибку!!!
    /* при обьявлении символов как char русские буквы
    кодируются отрицательными числами */
    while(*p)
    {
    if(*p >= 192)//здесь русская буква
    if(*p <= 239) // А,Б, ... Я,а,б, ... п
    *p -= 64;
    else // р ... я
    *p -= 16;
    p++;
    }
    return st;
    }
    int main(int argc, char *argv[])
    {
    cout<<rus("Проверка");
    system("PAUSE");
    return EXIT_SUCCESS;
    }
    
    В C++ Builder
    Вариант 1
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #include <stdio.h>
    #include <conio.h>
    #pragma hdrstop
    
    #include <tchar.h>
    
    char* rus(char* st); //Преобразует ANSI-строку в строку ASCII
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int _tmain(int argc, _TCHAR* argv[])
    {
    printf(rus("\nДля продолжения нажмите любую клавишу..."));
    getch();
    return 0;
    }
    //---------------------------------------------------------------------------
    char* rus(char* st)
    {
    unsigned char* p = (unsigned char*)st;
    while(*p)
    {
    if(*p >= 192)
    if(*p <= 239)
    *p -= 64;
    else
    *p -= 16;
    p++;
    }
    return st;
    }
    //---------------------------------------------------------------------------
    Вариант 2
    #include <vcl.h>
    #include <conio.h>
    #include <cstdlib.h>
    #include <iostream.h>
    #pragma hdrstop
    
    #include <tchar.h>
    
    char* rus(char* st); //Преобразует ANSI-строку в строку ASCII
    //----------------------------------------------------------------------------------------------------------------------------------------------------
    
    #pragma argsused
    int _tmain(int argc, _TCHAR* argv[])
    {
    cout<<rus("\nДля продолжения нажмите любую клавишу...");
    getch();
    return 0;
    }
    //----------------------------------------------------------------------------------------------------------------------------------------------------
    char* rus(char* st)
    {
    unsigned char* p = (unsigned char*)st;
    while(*p)
    {
    if(*p >= 192)
    if(*p <= 239)
    *p -= 64;
    else
    *p -= 16;
    p++;
    }
    return st;
    }
     
  6. SergKappa

    SergKappa New Member

    Репутация:
    0
    Регистрация:
    5 апр 2008
    Сообщения:
    4
    Симпатии:
    0
    //---------------------------------------------------------------------------

    #include <vcl.h>
    #include <iostream.h>
    #include <conio.h>
    #pragma hdrstop

    //---------------------------------------------------------------------------

    #pragma argsused
    int main(int argc, char* argv[])
    {
    char outch[256];
    CharToOem("Для продолжения нажмите любую клавишу...", outch);
    cout << outch;
    getch();
    return 0;
    }
    //---------------------------------------------------------------------------
     
  7. rrrFer

    rrrFer Гость

    Репутация:
    0
    SergKappa
    используй теги CODE
     
Загрузка...
Похожие Темы - Киррилица Консоли
  1. Ruslan280
    Ответов:
    3
    Просмотров:
    784
  2. mspSUSE
    Ответов:
    2
    Просмотров:
    1.120
  3. Gemini
    Ответов:
    10
    Просмотров:
    2.005
  4. DNT
    Ответов:
    13
    Просмотров:
    1.546
  5. SevenReg
    Ответов:
    3
    Просмотров:
    1.603

Поделиться этой страницей