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

    +66

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int array[100];    
    //~=//=~
    for(i=0;i<100;++i)
    {   
        if(array[i] != 0) continue; 
        break;
    }

    Код ужасно упрощен, но смысл передан полностью. Как я такое написал хз.

    Запостил: Rofl113, 23 Апреля 2014

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

    • На С надо писать так:
      for(i=array; !*(++i);); //питухи, в массиве должен быть ноль.

      А на С++ будет что-нибудь с algorithm, а лучше с бустом.
      Ответить
    • Код ужасно упрощен
      Ну тогда уже так:
      for(i=0;i<100;++i)
      {   
          break;
      }

      А раз уж так, то можно и без цикла вообще :)
      Ответить
    • char bf[1000];
      std::cin >> bf;

      Что после этого должно быть в bf и почему это компилируется?
      Ответить
      • >почему это компилируется?
        Потому что кресты - говно!
        http://ideone.com/EJFyya
        Problems?
        Ответить
        • Этого нет в стандарте. И вообще это не безопасно. Вдруг в буфер не вместится.
          Ответить
          • >Вдруг в буфер не вместится.
            Кто ж тыщу символов не поленится ввести?
            Ответить
          • > Этого нет в стандарте.
            Как это нету? А котаны и не знали :)

            Евангелие от Страуструпа c++98, 27.6.1.2.3 basic_istream::operator >>, пункты 5-6 гласят:
            template<class charT, class traits>
              basic_istream<charT,traits>& operator>>(basic_istream<charT,traits>& in, charT* s);
            Effects: Behaves like a formatted input member (as described in 27.6.1.2.1) of in . After a sentry object is constructed, operator>> extracts characters and stores them into successive locations of an array whose first element is designated by s . If width() is greater than zero, n is width(). Otherwise n is the the number of elements of the largest array of char_type that can store a terminating
            eos. n is the maximum number of characters stored.


            Вдруг в буфер не вместится:
            std::cin >> std::setw(5) >> bf;
            http://ideone.com/oifbHq
            Ответить
            • P.S. А есть где-нибудь ресурс, на котором лежит драфт крестоблядского стандарта? Причем чтобы можно было создавать ссылки на цитаты из него. Я джва года жду такой сайт...
              Ответить
              • я думаю, можно попробовать начать отсюда
                https://github.com/cplusplus/draft
                Правда, ссылки будут утыкаться в драфт на латехе
                Ответить
              • Да это же годный и одновременно бесполезный с точки зрения денег стартап. Можно написать на Хаскеле или каком-нибудь Эрланге. Это будет прямо удар по репутации крестовиков, если он будет написан не на крестах. Хотя бы потому что Страуструп даже презентации на крестах пишет. *Добрая улыбка*
                Ответить

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