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

    +12

    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
    #include <string>
    #include <sstream>
    #include <iostream>
    
    int main() {
        std::string str;
        std::stringstream s("");
        std::getline(s, str, '|');
        std::cout << "good=" << s.good() <<
            " bad=" << s.bad() <<
            " fail=" << s.fail() <<
            " eof=" << s.eof() << std::endl;
        return 0;
    }

    good=0 bad=0 fail=1 eof=1

    http://ideone.com/0Ceg8z

    У меня один вопрос: нахуй так жить?

    bormand, 30 Сентября 2013

    Комментарии (245)
  2. C++ / Говнокод #13857

    +1

    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
    void gte::loadProps(const char* fileName){
        
    	propMap.clear();
    	s3eFile* g_FileHandle = s3eFileOpen(fileName, "rb");
    	while (!s3eFileEOF(g_FileHandle)) {
    		char c1=0;
    		char c2=0;
    		s3eFileRead(&c1, 1, 1, g_FileHandle);
    		s3eFileRead(&c2, 1, 1, g_FileHandle);
    		int len = 0;
    		len = (c2 & 0xFF) | ( (c1  & 0xff) << 8);
    		if (len==0) continue;
    		char* textData = new char[len+1];
    		textData[len] = 0;
    		s3eFileRead(textData, sizeof(char), len, g_FileHandle);
    		char* pos = strchr(textData, ':');
    		string key(textData, pos - textData);
    		string value(pos + 2, textData + len - pos - 2);//(textData,
    		propMap[key] = value;
    	}
    
    	s3eFileClose(g_FileHandle);
    }

    Чтение строки, первые 2 байта - длинна.
    Проект использует Marmalade SDK.

    krypt, 27 Сентября 2013

    Комментарии (47)
  3. C++ / Говнокод #13852

    +81

    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
    26. 26
    27. 27
    28. 28
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int bin_search(int *A, int key, int low, int high){
      if (low > high){
          return 0;
      }
      int mid = ( low + high ) / 2;
      if (A[mid] == key)
        return mid+1;
      else if( A[mid] < key)
        bin_search(A, key, mid + 1, high);
      else if (A[mid] > key)
        bin_search(A, key, low, mid - 1);
    }
    
    int main()
    {
        int n, k;
        cin >> k >> n;
        int A[n-1];
        for (int i = 0; i < n; i++)
        {
            cin >> A[i];
        }
            cout << bin_search(A, k, 0, n);
    }

    Нужно реализовать бинпоиск рекурсией, на вход значение искомого элемента,
    число элементов и сам массив,
    вывести номер минимального элемента равного искомому.
    У меня откровенно говоря баг, не могу его откопать, помогите!!!

    aesc_smirnov, 26 Сентября 2013

    Комментарии (81)
  4. C++ / Говнокод #13851

    +2

    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
    #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, 26 Сентября 2013

    Комментарии (71)
  5. C++ / Говнокод #13846

    +21

    1. 1
    2. 2
    3. 3
    for (size_t index = 0; index != size; ++size) {
    ...
    }

    Устраняю последствия ночного кодинга

    Setry, 23 Сентября 2013

    Комментарии (10)
  6. C++ / Говнокод #13820

    +8

    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
    if (dequeueBuffer_) {
        delete dequeueBuffer_;
        dequeueBuffer_ = NULL;
      }
    
      if (enqueueBuffer_) {
        delete enqueueBuffer_;
        enqueueBuffer_ = NULL;
      }
    
      if (readBuff_) {
        delete[] readBuff_;
        readBuff_ = NULL;
      }
    
      if (currentEvent_) {
        delete currentEvent_;
        currentEvent_ = NULL;
      }

    Apache Thrift 0.9.1, made in Facebook
    Код в деструкторе:

    Fogbit, 19 Сентября 2013

    Комментарии (28)
  7. C++ / Говнокод #13804

    +3

    1. 1
    CBinarySemaphore _there_is_only_one;//Highlander.

    laMer007, 17 Сентября 2013

    Комментарии (3)
  8. C++ / Говнокод #13803

    −11

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Point ReadPoint ()
    {
    	Fixed x = ReadFixed();
    	Fixed y = ReadFixed();
    	return Point(x,y);
    }

    Как же меня бесит отсутствие чётко определённого стандартом порядка вычисления аргументов!!!!!!!

    TarasB, 17 Сентября 2013

    Комментарии (162)
  9. C++ / Говнокод #13802

    +11

    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
    AbstractMessageFrame * DataLength = create_frame(
    		make_condition_reader(this,
    			fnc_ext::bind(
    				fnc_ext::compose1(
    					fnc_ext::compose2(std::logical_or<bool>(),
    									  std::bind2nd(std::equal_to<byte>(), PC5000FlashFeatures::MARKER_SYMBOL),
    									  std::bind2nd(std::equal_to<byte>(), PC5000FlashFeatures::SPACE_SYMBOL)),
    					fnc_ext::mem_fun<const ByteBuffer, const byte&>(&ByteBuffer::back) ),
    				&_receivedBuffer),
    			fnc_ext::bind(
    				fnc_ext::compose2(std::logical_or<bool>(),
    								  fnc_ext::compose1(std::bind2nd(std::greater<WORD>(),
    																 PC5000FlashFeatures::LENGTH_HEADER +
    																 _maxCommandFieldLength +
    																 PC5000FlashFeatures::LENGTH_MARKER +
    																 PC5000FlashFeatures::LENGTH_OF_LENGTH),
    													fnc_ext::mem_fun(&ByteBuffer::length)),
    								  fnc_ext::compose1(fnc_ext::compose2(std::logical_and<bool>(),
    																	  std::not1(std::ptr_fun<const char, bool>((SymbolCheckFunc)isDigit)),
    																	  std::not1(std::ptr_fun<const char, bool>((SymbolCheckFunc)isEnglishLetter))),
    													fnc_ext::mem_fun<const abstractBuffer<unsigned char>, const byte&>(&ByteBuffer::back)) ),
    				&_receivedBuffer) ),
    		fnc_ext::bind(std::mem_fun(&ThisClass::setDataLength), this),
    		"Data Length");

    Композиции, частичные применения, функторы? Больше тотальной функциональщины! Вложенность продолжает расти с развитием проекта.

    laMer007, 17 Сентября 2013

    Комментарии (18)
  10. C++ / Говнокод #13796

    −4

    1. 1
    2. 2
    // please don't change this
    #define NUM_INVISIBLE_TYPES 1

    Выдержка из исходников civilization 5.

    Да, да, прекрасно, усложняйте моддинг

    kindofbear, 16 Сентября 2013

    Комментарии (7)