1. C++ / Говнокод #7888

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    std::ostringstream str;
    str << "Русский текст" << std::endl;
    Print(str.c_str());
    //Оттуда же:
    void ConsoleCout(const char* _text)
    {
        char* buffer=0;
        unsigned int bufferSize=0;
    
        if(!_text) return;
        while(_text[bufferSize]) bufferSize++;
    
        buffer=new (std::nothrow) char[bufferSize+1];
        if(!buffer) return;
        buffer[bufferSize]=0;
    
        if(!CharToOemA(_text,buffer))
        {
            delete[] buffer;
            return;
        }
    
        std::cout<<buffer;
        delete[] buffer;
    }

    [code]http://www.gamedev.ru/code/forum/?id=152499[\code]

    Запостил: CPPGovno, 18 Сентября 2011

    Комментарии (19) RSS

    • О setlocale конечно же атцы никогда не рассказывали.
      Ответить
      • А главное, это просто дико кроссплатформенно.
        Ответить
        • Да от платформы к платформе лишь строковой константой отличается.
          А вот написать свой велосипед под каждый язык мира ради кросязычности продута - непотребство какое то...
          Ответить
          • В смысле строковой константой?

            А CharToOemA и подстройка под виндовые глюки - это уже кроссплатформенно?
            Ответить
            • Вы не умеете программировать на С++? А я уж подумал, вспомнив ваши недавние треды про пидорасов, что вы умеете.
              Ответить
              • Я смотрю, ты всё никак не уймёшься, школиё.
                Ответить
                • Вас что-то беспокоит? Соболезную вашей гомосексуальной беде. Но к сожалению, ничем не могу Вам помочь.
                  Ответить
    • Тоже оттуда:
      const char* RUS(const char* _text)
      {
          if(!CharToOemA(_text,_text)) return 0;
          return _text;
      }
      //И выводи:
      cout<<num<< RUS("Правильно!") << endl;
      Ответить
    • Во всех нормальных языках давным-давно используют юникод. И только крестоносцы никак не осознают наличие wstring, wcout, etc.
      Ответить
      • показать все, что скрыто> И только виндовые крестоносцы

        Fixed.
        Ответить
      • вы ведь не видели всего кода. Возможно юникод неприменим в данном случае.
        Не говнокод
        Ответить
        • Вероятность того, что ограничения по памяти и произвдительности для данного приложения не позволяют использовать юникод намного меньше вероятности того, то автор кода - тупой еблан
          Ответить

    Добавить комментарий