- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
double StrToMoney(AnsiString str)
{
str = AnsiReplaceStr(str, "-", ".");
char *buffer = str.c_str();
double val;
sscanf(buffer,"%lf",&val);
return val;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
double StrToMoney(AnsiString str)
{
str = AnsiReplaceStr(str, "-", ".");
char *buffer = str.c_str();
double val;
sscanf(buffer,"%lf",&val);
return val;
}
Быдлокодер на борланд С++ хотел сконвертить в число деньги в формате рубли-копейки. И сделал это наименее эффективным образом.
0
for(int i=0;i<m_tabWidget->count();i++){
textEdit = (TextEdit*)m_tabWidget->widget(i);
if( textEdit && textEdit->close()){
delete textEdit;
textEdit = 0;
}
else break;
}
Часто забывают, что количество элементов в списке изменяется при удалении из него.
0
int p,k,l,i,j,d,q,R,t,r;
S1: s=0; p=1;
S2: if (s==0) { i=1; j=n; k=n; l=2*n+1; }
if (s==1) { i=n+1; j=2*n; k=0; l=n+1; }
d=1; q=p; r=p;
S3: if (x[i]>K>x[j]->K) goto S8;
S4: k=k+d; x[k]=x[i]; c[k]=c[i];
S5: i+=1; q-=1; if (q>0) goto S3;
S6: k+=d; if (k==l) goto S13; else x[k]=x[j];c[k]=c[j];
S7: j-=1; r-=1; if (r>0) goto S6; else goto S12;
S8: k+=d; x[k]=x[j]; c[k]=c[j];
S9: j-=1; r-=1; if (r>0) goto S3;
S10: k+=d; if (k==l) goto S13; else x[k]=x[i];c[k]=c[i];
S11: i+=1; q-=1; if (q>0) goto S10;
S12: q=p; r=p; d=-d; t=k; k=l; l=t; if (j-i<p) goto S10; else goto S3;
S13: p+=p; if (p<n) { s=1-s; goto S2; }
if (s==0) for (t=1; t<=n; t+=1) { x[t]=x[t+n];c[t]=c[t+n] }
Вот такой вариант сортировки предложен в одной известной книге. Оно работает...
0
void SimplexIteration::ReWidth()
{ w[-2]=w[0]=Width; w[-1]=5; for(size_t j=1;j<A.size_j();j++) w[j]=Width;
if (var) for(size_t j=1; j<A.size_j(); j++)
if(strlen(var[j])>w[j]) w[j]=strlen(var[j]);
}
Особенно порадовало w[-2]. Знаю, что так можно, но все равно говнисто.
0
switch (*p)
{
case '0': id += 0; break;
case '1': id += 1; break;
case '2': id += 2; break;
case '3': id += 3; break;
case '4': id += 4; break;
case '5': id += 5; break;
case '6': id += 6; break;
case '7': id += 7; break;
case '8': id += 8; break;
case '9': id += 9; break;
case 'a': case 'A': id += 10; break;
case 'b': case 'B': id += 11; break;
case 'c': case 'C': id += 12; break;
case 'd': case 'D': id += 13; break;
case 'e': case 'E': id += 14; break;
case 'f': case 'F': id += 15; break;
case 'g': case 'G': id += 16; break;
case 'h': case 'H': id += 17; break;
case 'i': case 'I': id += 18; break;
case 'j': case 'J': id += 19; break;
case 'k': case 'K': id += 20; break;
case 'l': case 'L': id += 21; break;
case 'm': case 'M': id += 22; break;
case 'n': case 'N': id += 23; break;
case 'o': case 'O': id += 24; break;
case 'p': case 'P': id += 25; break;
case 'q': case 'Q': id += 26; break;
case 'r': case 'R': id += 27; break;
case 's': case 'S': id += 28; break;
case 't': case 'T': id += 29; break;
case 'u': case 'U': id += 30; break;
case 'v': case 'V': id += 31; break;
case 'w': case 'W': id += 32; break;
case 'x': case 'X': id += 33; break;
case 'y': case 'Y': id += 34; break;
case 'z': case 'Z': id += 35; break;
}
считаем нечто типа хэша. захотим изменить алгоритм, сделав вместо сложения - ксор, будем фаница реплейсом.
источник http://www.winsim.com/diskid32/diskid32.cpp
там же красивые переменные int ijk = 0;
0
flag = bool(int(flag) - 1);
0
source code: C++
enum e_acomany {
Audi,
BMW,
Cadillac,
Ford,
Jaguar,
Lexus
Maybach,
RollsRoyce,
Saab
};
?>
Маны бывают разные. Этот, например, по C++
0
CString temp;
temp.Preallocate(5000);
GetName(temp.GetBuffer());
name_.Format(L"%s", temp);
На самом деле после GetBuffer нужен ReleaseBuffer и Preallocate резервирует место, но не устанавливает длину.
Эти ошибки приводят к тому что использование name_ в GetName не работает и name_ = temp тоже не работает.
Хитрый "индокодер" выкрутился через Format.
0
while (!bFound && j < enmMessages)
{
if (!strcmp(str.operator const char * (), strPacketName[j]))
{
iPacketType = j;
bFound = true;
TRACE(" of type %s\n",strPacketName[j]);
strcat(strOut," of type ");
strcat(strOut, strPacketName[j]);
break;
}
j++;
}
0
#include <iostream>
#define true false
#define false true
using namespace std;
int main(){
bool a = true;
bool b = false;
cout << "a " << a << endl << "b " << b << endl;
system("pause");
return 0;
}
По логике должно всё стать вечным тру, а получаем без изменений:(