Кресты / Говнокод #13851 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
#if defined(_WIN32) || defined(_WIN64)
     size_t size = message.size();
     size_t size_buf = 1015;

     size_t pointer = 0;
     for (int i = 0; i < (size/size_buf) + 1 ; i++){
         
         /*Делаем для красивого вывода. Пробел всегда один байт.
          *Потому сматываем указатель буфера до первого пробела.*/
         int buf = size_buf;
         while (message[pointer+buf] != ' ')
             buf--;
         
         /*Здесь лечится косяк MinGw, буфер принимает по 1к байтов.
          *Лечение производим создавая дополнительные буферы.*/
         istringstream ss(message.substr(pointer,buf) );
         std::cout << ss.rdbuf();
         
         pointer += buf;
     }
#else
     std::cout << message;
#endif

Похоже плохая сборка MinGw.
http://govnokod.ru/13094

Запостил: crastinus crastinus, (Updated )

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

  • говнокод накрылся медным унитазом, по крайней мере у меня, дня на 2.

    Нада создать запасной сайт, и назвать его Быдлокод)))))

    /*Делаем для красивого вывода. Пробел всегда один байт.
    *Потому сматываем указатель буфера до первого пробела.*/

    указатель не веревка чтобы его сматывать, хотя в с++ веревка - это святое, из нее можно и пострелять.)))

    size_t size_buf = 1015; мистическая константа, почему-то 1015.
    Ответить
    • > говнокод накрылся медным унитазом, по крайней мере у меня, дня на 2.
      У меня тоже. И isup.me говорил, что не открывается.
      Ответить
      • <накрылся медным унитазом, по крайней мере у меня, дня на 2.>
        ЭТА Я ТРУБА ШАТАЛ!!
        Ответить
            • Выражение это я знаю, я надеялся на занимательные подробности.
              Скажем в стиле "Пошёл Stertor и купил себе канал на 10 гигабит. Теперь жежешечку шатает и говнокодик на закуску".
              Ответить
              • Шатать жэжэшечку - все равно, что зайти по щиколотку в нечистоты (проще говоря - в дерьмо) и еще ногами месить. Наш сайт по сравнению с жж - и то не так уныл и убог. Вообще, идеальный сайт, по сравнению со всеми, до сей поры видеными мной.
                Ответить
                  • <Проповеди последней мне просто жизнь спасли>
                    Бесплатный кокаин для страждущих?

                    Никто не даст нам избавленья -
                    ни бог ни царь и ни герой.
                    Всего достигнем лишь собственной рукой!

                    Почем опиум для народа?
                    Ответить
                • > Шатать жэжэшечку - все равно, что зайти по щиколотку в нечистоты
                  Я про шатание сугубо автоматизированными методами. Своим бложиком жежешечку не свалишь.

                  > идеальный сайт
                  Верно подмечено. А всё потому, что цель находится внутри пользователя. Не набрать кармы ради кармы, не продвинуть свой бложик в топе, а весело провести время.
                  Ответить
                  • Читал старый тред на скуелеру. Одного деятеля опускали в каждом треде. Его последователь сообщил, что на хаброте этот самый деятель нашёл свою аудиторию и был оценен. На вопрос, как он это определил, ничтоже сумняся ответил, что по карме.
                    Ответить
                    • <на хаброте этот самый деятель нашёл свою аудиторию и был оценен>
                      анскильный петушок попал в курятник?
                      Бля, пусть меня заминусуют, но факт останется фактом.
                      Ответить
                      • Кто ж тебя тут заминусует за такой пост? 🙂 Тут половина ГК хаброненавистников (которые, тем не менее, его читают)...

                        P.S. Плюсанул.
                        Ответить
                        • > Тут половина ГК хаброненавистников (которые, тем не менее, его читают)...
                          я читаю. и даже имею там отрицательную карму (потому что всегда говорю то, что думаю)
                          Ответить
          • Вообще-то ГК месяцами лежал. Посмотри в своем дампе максимальную разницу во времени между двумя топиками. Узнаешь месяца, в которых он лежал)).
            Ответить
            • Хм, не знал таких подробностей. Мда, надо бы ещё и по комментариям посмотреть.
              Ответить
            • 1	15.26 дней:	C#48401/P#3739 2010-09-22T09:21:22+04:00 & C#48402/P#4300 2010-10-07T15:40:01+04:00
              2	11.01 дней:	C#125456/P#8865 2011-12-23T18:29:41+03:00 & C#125457/P#8875 2012-01-03T18:40:35+03:00
              3	4.10 дней:	C#125454/P#8865 2011-12-19T15:54:24+03:00 & C#125455/P#8866 2011-12-23T18:20:13+03:00
              4	2.23 дней:	C#175948/P#12923 2013-04-23T12:30:06+04:00 & P#12935 2013-04-25T17:58:14+04:00
              5	2.10 дней:	C#197511/P#13849 2013-09-24T13:05:03+04:00 & C#197512/P#13590 2013-09-26T15:28:58+04:00
              6	2.08 дней:	C#148323/P#11440 2012-07-24T13:17:11+04:00 & C#148324/P#11440 2012-07-26T15:13:06+04:00
              7	2.01 дней:	C#8278/P#1944 2009-10-07T14:46:26+04:00 & C#8279/P#1937 2009-10-09T15:00:42+04:00
              8	1.99 дней:	C#154784/P#11826 2012-09-25T13:05:51+04:00 & C#154785/P#11834 2012-09-27T12:49:38+04:00
              9	1.47 дней:	P#12 2008-11-25T12:29:35+03:00 & P#5 2008-11-26T23:40:44+03:00
              10	1.27 дней:	P#9721 2012-03-20T13:46:00+03:00 & P#9722 2012-03-21T20:15:10+03:00

              Это была пятая по величине задержка между постами/комментариями.
              Ответить
    • > говнокод накрылся медным унитазом, по крайней мере у меня, дня на 2.

      и чё? ньюфаг?
      Ответить
      • > и чё? ньюфаг?

        У олдфагов ГК исправно открывался? Или о падении ГК нельзя упоминать?
        Поясните, пожалуйста. Так сказать, для будущих поколений.
        Ответить
        • > Или о падении ГК нельзя упоминать?
          О мертвых говорят или хорошо или никак 😉
          Ответить
        • Падение ГК - это полезная фича, позволяющая отвлечься наконец от него и ненадолго заняться проектом.
          Ответить
          • Надо, кстати, записать IP говнокодика. Дабы на следующем падении попробовать зайти по ойпи.
            Ответить
              • > вбил в hosts, показало сайт говнотурфирмы
                Ну хз. Значит говнохостинг и виртуалхост удаляет, а не только A запись в DNS... Обычно добавления в hosts вполне хватает.
                Ответить
          • Общественная столовая была закрыта, тролль умер с голоду.
            Ответить
        • В таких местах говнокод принимает свойства плазмы - он не падает
          Ответить
      • > и чё? ньюфаг?

        а то, разделим всех на ньюфагов, фагов , сеньёрфагов, олдфагов.
        Ответить
    • > Нада создать запасной сайт
      Не нужен же.
      Ты бы ещё предложил там блекджек запилить.
      Ответить
      • > блекджек запилить
        А что, тогда уж для полноты картины и поиск шлюх, чтобы было чем заняться, пока ГК в оффлайне.
        Ответить
    • >мистическая константа, почему-то 1015.
      В тексте же написано, что по 1К выводит. 1015 это как раз примерно 1К без управляющих структур.
      В типе стринг содержится строка UTF-8, каждый ее символ занимает от 1 до 6 байт. Пробел всегда один байт, потому перемотка (да не сматывание) до пробела позволяет перекинуть в буфер стрингстрима строку с целыми символами, затем каждый такой буфер выводить в консоль.
      Ответить
        • А за что минусы? Поставьте минус тому, кто это записал.
          Либо Тарас, либо Онаним. На всякий случай, обоим.
          Ответить
      • Надеяться на то, что среди 1015 символов всяко попадется пробел, имхо, грязноватый хак... Хотя на реальных данных он почти всегда будет попадаться 😉

        P.S. Если кто-то считает ситуацию с 1015 символами без пробела нереальной, приведу банальный пример: строка, в которой 100500 слов разделены табом или переводом строки 😉
        Ответить
            • Ты так часто повторяешься, и я не уверен в том, что ты не патефон.
              Ответить
                • Бля, как же подзаебало в ответ на свои провокации слышать корректные ответы! Фак офф! Ладно, сдаюсь. Сегодня ты подебил.
                  Ответить
          • Хорошо, ты меня окончательно убедил

            Если цикл будет такой:
            while ( !( message[pointer+buf] & 0x80) && (message[pointer+buf] & 0x40) )

            то будем попадать на границы слов
            Ответить
            • Нужно отрицание со вторым поменять, но это будет эквивалентно:
              while( message[pointer+buf] & 0x80)
              Ответить
        • Написал первое, что пришло в голову. Для тех кто работал с UTF-8 побайтно ответ очевиден.
          Ответить
          • > Для тех кто работал с UTF-8 побайтно ответ очевиден
            Да. И он звучит так:
            if ((c & 0xC0) == 0x80) {
                // это не стартовый байт, крутим дальше
            }
            Ответить
            • чем не угодил
              if (c & 0x80)

              У тебя ведь он на 10 будет выдавать тру, а на 11 false.
              Ответить
                • Чуть по выше я приводил пример

                  while( (c&0x80) && !(c&0x40) )

                  чуть накосячил с логикой. Один хрен в МД нужно сматывать до пробела.
                  Ответить
                    • И понятней любому достаточно опытному байтоёбу 🙂

                      Стандартная идиома для проверки пачки битов...
                      Ответить
                  • > Один хрен в МД нужно сматывать до пробела.
                    Зачем до пробела? Границы любого utf символа разве недостаточно?
                    Ответить
                    • Не UTF-символа, а именно только однобайтового UTF-символа. Вообще не понимаю откуда такая НЕХ взялась.
                      Сначала был вариант с логикой проверки двух первых битов, затем посмотрел и оставил только 0x80, т.к. первый вариант стал выдавать неверный результат с многобайтовыми символами. Но это только в МД так.
                      Ответить
        • Анонимб, я вижу, тебе опять захотелось почувствовать кочергу в анусе?
          Ответить
          • я вижу здесь немало личностей, которые для этого даже из себя гоатсе делают.
            Ответить
            • Что поделаешь, сейчас очень модно быть геем.
              Главное, не стать пидаром.
              Береги анус честь смолоду.
              Ответить
  • пс-гипс, зиз-спс, пип-кпсс
    LymDcZlHIOvODmswjPMFBqUqrkLaJrGQvcWBrslDPpYBurLAClauIyKRzuKycBtYYcFAfVgErl
    Ответить
  • Он прижался ко мне, его член протиснулся между моих ног. "Какой большой", - подумал я, и сжал его бедрами. Пашка не отпускал меня, возбуждаясь все сильнее.
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8