- 1
- 2
- 3
char line[10];
cout<<"Press any key to exit"<<endl;
cin.getline(line,9);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+151
char line[10];
cout<<"Press any key to exit"<<endl;
cin.getline(line,9);
Очередной перл из решений кандидатских задач.
Видимо в военное время количество символов, генерируемых одной клавишей, может достигать 9. :)
+155
typedef struct IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING344 : boost::mpl::assert_ {
static boost::mpl::failed ************ (IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING::************ assert_arg()) (T&) {
return 0;
}
} mpl_assert_arg344;
typedef struct IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING375 : boost::mpl::assert_ {
static boost::mpl::failed ************ (IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING::************ assert_arg()) (T&) {
return 0;
}
} mpl_assert_arg375;
template< typename Pred >
failed ************ (Pred::************
assert_arg(void (*)(Pred), typename assert_arg_pred<Pred>::type)
);
template< typename Pred >
failed ************ (boost::mpl::not_<Pred>::************
assert_not_arg(void (*)(Pred), typename assert_arg_pred_not<Pred>::type)
);
В том что boost'овские библиотеки достаточно хорошо оптимизированы я не сомневаюсь, но от некоторых конструкций я просто охреневаю...
+162
int main(int argc, char* argv[])
{
// Массив русских букв:
char c[33], s[33];
// Заглавные буквы:
c[0] = 0x80; // А
c[1] = 0x81; // Б
c[2] = 0x82; // В
c[3] = 0x83; // Г
c[4] = 0x84; // Д
c[5] = 0x85; // Е
c[6] = 0x86; // Ж
c[7] = 0x87; // З
c[8] = 0x88; // И
c[9] = 0x89; // Й
c[10] = 0x8A; // К
c[11] = 0x8B; // Л
c[12] = 0x8C; // М
c[13] = 0x8D; // Н
c[14] = 0x8E; // О
c[15] = 0x8F; // П
c[16] = 0x90; // Р
c[17] = 0x91; // С
c[18] = 0x92; // Т
c[19] = 0x93; // У
c[20] = 0x94; // Ф
c[21] = 0x95; // Х
c[22] = 0x96; // Ц
c[23] = 0x97; // Ч
c[24] = 0x98; // Ш
c[25] = 0x99; // Щ
c[26] = 0x9A; // Ъ
c[27] = 0x9B; // Ы
c[28] = 0x9C; // Ь
c[29] = 0x9D; // Э
c[30] = 0x9E; // Ю
c[31] = 0x9F; // Я
c[32] = 0xF0; // Ё
// Прописные буквы:
s[0] = 0xA0; // а
s[1] = 0xA1; // б
s[2] = 0xA2; // в
s[3] = 0xA3; // г
s[4] = 0xA4; // д
s[5] = 0xA5; // е
s[6] = 0xA6; // ж
s[7] = 0xA7; // з
s[8] = 0xA8; // и
s[9] = 0xA9; // й
s[10] = 0xAA; // к
s[11] = 0xAB; // л
s[12] = 0xAC; // м
s[13] = 0xAD; // н
s[14] = 0xAE; // о
s[15] = 0xAF; // п
s[16] = 0xE0; // р
s[17] = 0xE1; // с
s[18] = 0xE2; // т
s[19] = 0xE3; // у
s[20] = 0xE4; // ф
s[21] = 0xE5; // х
s[22] = 0xE6; // ц
s[23] = 0xE7; // ч
s[24] = 0xE8; // ш
s[25] = 0xE9; // щ
s[26] = 0xEA; // ъ
s[27] = 0xEB; // ы
s[28] = 0xEC; // ь
s[29] = 0xED; // э
s[30] = 0xEE; // ю
s[31] = 0xEF; // я
s[32] = 0xF1; // ё
// Конец массива.
cout << c[21] << s[14] << "-" << s[21] << s[14] << "!\n"; // Хо-хо!
getch();
return 0;
}
Когда я ещё не знал, как выводить в консоли русские буквы, спел и натанцевал индийский код.
+144
#include <iostream>
using namespace std;
void f(double *x1,double *x2,double *x3)
{
if (((*x1>*x2)&&(*x1<*x3))||((*x1<*x2)&&(*x1>*x3)))
*x1=(*x2+*x3)/2;
if (((*x2>*x1)&&(*x2<*x3))||((*x2<*x1)&&(*x2>*x3)))
*x2=(*x1+*x3)/2;
if (((*x3>*x1)&&(*x3<*x2))||((*x3<*x1)&&(*x3>*x2)))
*x3=(*x2+*x1)/2;
}
int main()
{
double x1,x2,x3;
cin>>x1>>x2>>x3;
double *y1=&x1;
double *y2=&x2;
double *y3=&x3;
f(y1,y2,y3);
cout<<x1<<' '<<x2<<' '<<x3;
return 0;
}
Креатив.
+156
std::pair<std::vector<char>::const_iterator, unsigned int> parsedUnit = Utils::PackedUIntHelper::Unpack<unsigned char>(it);
parsedUnit = Utils::PackedUIntHelper::Unpack<unsigned char>(parsedUnit.first);
Представления потока данных итератором и чтение числа.
+165
if ( p->m_p )
{
m_p = p->m_p;
}
else
{
m_p = NULL;
}
Мля, ну а вдруг
+151
typedef std::basic_string<unsigned short> wstring;
вот, надыбал в одном из подпроектов большого проекта.
+144
int i = 1;
int j = i++ + ++i;
Инкремент-экскремент, чтобы враг не догадался, 3 или 4 это выражение возвращает.
+164
class Cmd
{
private: /* ... */
protected: /* ... */
public:
virtual void Assign(Cmd *Source) {}
/* ... */
};
//---------------------------------------------------------------------------
class UARTCmd: public Cmd
{
private: /* ... */
protected:
byte FCode;
unsigned short FCRCbytes;
int FLenData;
byte FData[256];
unsigned short FInit_CRC;
unsigned short FPoly_CRC;
TypeCommand TypeCmd;
public:
virtual void Assign(Cmd *Source) { /* .1. */ }
/* ... */
};
//---------------------------------------------------------------------------
class TRANSITCmd: public Cmd
{
private: /* ... */
protected:
byte FCode;
unsigned short FCRCbytes;
int FLenData;
byte FData[256];
unsigned short FInit_CRC;
unsigned short FPoly_CRC;
byte FID;
unsigned short FNumb;
public:
virtual void Assign(Cmd *Source) { /* .2. */ /* .3. */ }
/* ... */
};
//---------------------------------------------------------------------------
class ASKCmd: public Cmd
{
private: /* ... */
protected:
byte FCode;
unsigned short FCRCbytes;
int FLenData;
byte FData[256];
unsigned short FInit_CRC;
unsigned short FPoly_CRC;
byte FID;
byte FidFrom;
byte FTimeR;
unsigned short FSID;
public:
virtual void Assign(Cmd *Source) { /* .2. */ /* .4. */ }
/* ... */
};
//---------------------------------------------------------------------------
class RESPCmd: public Cmd
{
private: /* ... */
protected:
byte FCode;
unsigned short FCRCbytes;
int FLenData;
byte FData[256];
unsigned short FInit_CRC;
unsigned short FPoly_CRC;
byte FID;
byte FidFrom;
byte FTimeR;
unsigned short FSID;
byte FidResp;
unsigned short FCRCResp;
public:
virtual void Assign(Cmd *Source) { /* .2. */ /* .4. */ /* .5. */ }
/* ... */
};
Сие чудо я должен реализовывать! Так сказать, привести в порядок код.
P.S. Первоначальный вариант выглядит в разы лучше.
P.P.S. /* .1. */ - обозначает часть кода
+171
TCHAR szPort[7];
strcpy(m_szAddress,szAddress);
// INITIALIZE RETURN VALUE TO INDICATE COM PORT NOT INITIALIZED
bool bRetVal = false;
switch( byCOMPort )
{
case 1:
_tcscpy(szPort,_T("COM1:"));
break;
case 2:
_tcscpy(szPort,_T("COM2:"));
break;
case 3:
_tcscpy(szPort,_T("COM3:"));
break;
case 4:
_tcscpy(szPort,_T("COM4:"));
break;
}
Вот так гибко можно отрывать любой из четырёх COM портов.