Напишете някоя C++ програма

37 отговора 2178 прегледа
#1

Напишете някоя C++ програма

искам да видя дали версия 5.0 дето свалих работи

Отговор
в отговор на nako #2

Re: Напишете някоя C++ програма

#include <stdio.h>
int main()
{
printf("Аз съм кретен");
rerun -1;
}

Bеer? Mоre?
Плацебото
Отговор
в отговор на bira_more #3

Re: Напишете някоя C++ програма

Незнам кой е кретен, но си объркал return statement-a.

Отговор
в отговор на bira_more #4

Re: Напишете някоя C++ програма

В M$ конзолните джамове трудно се вижда кирилицата

Отговор
в отговор на bira_more #5

Re: Напишете някоя C++ програма

Абе М$ конзолните приложения май имат проблеми с кирилицата

Отговор
в отговор на Paдo #6

Re: Напишете някоя C++ програма

Упс, сори. Мислех, че не съм пуснал първото

Отговор
в отговор на Paдo #7

Мойта нема грижи

Ако ти е настроен правилно win-а немаш грижи с кирилицата в конзолата.

System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_
Отговор
в отговор на commercial #8

Упс

Вярно съм го объркал :)
А то за кретена е повече от ясно - сега как да го кажа по ясно - ми аз съм си го казал.

Bеer? Mоre?
Плацебото
Отговор
в отговор на Colombino #9

Re: Мойта нема грижи

Ми Regional Settings са Bulgarian. Language for Non-Unicode Programs - също.
В немаксимизиран конзолен прозорец, част (повечето са ок) от символите на кирилица са някви джиджавки.

Отговор
в отговор на Paдo #10

Re: Напишете някоя C++ програма

Конзолните приложения нямат проблем. Проблем има редакторът ти, дето праска цп1251 или уникод кирилица, а конзолата, както всички знаем, се ползва със съвсем различна кодировка.

Ако нещо ви се струва сложно, мога да го направя още по-сложно
Отговор
в отговор на ьп #11

Re: Напишете някоя C++ програма

Да де. Само, че 1251 се използва по подразбиране от всички програми, ако не запазвам като Unicode и Уиндоуса е с нашенски настройки и не избера изрично съответната (не се сещам, май 855 или нещо такова беше) cp.

ПП Освен това оригиналният пост беше заяждане :) Не съм умрял да пиша кирилица в конзолата :)

Отговор
в отговор на bira_more #12

Упс

тури само отгоре

#define rerun return


и ще работи като слънце

Отговор
в отговор на Paдo #13

Бе не е хептен без грижи

Начи по принцип говорехме дали се вижда трудно/лесно кирилица, не дали като компилираш тва нещо дали ша излезе на кирилица :-)
Начи в текстовия редактор кодовата страница ти е 1251, а в конзолата е някоя досовска. При мен е (link) СP855, за да видиш при теб ползвай команда сhcp без аргументи от конзолата.
Компилирах си масивче от няколко букви и излиза :-)
Не съм запознат как в С се конвертират кодови страници, но вероятно може да се напише така:

#include <stdio.h>


char cp855[256];

void Init(void)
{
cp855[0] = 0;
cp855[ ((unsigned char)'Ж') ] = 0xEA;
cp855[ ((unsigned char)'а') ] = 0xA0;
cp855[ ((unsigned char)'б') ] = 0xA2;
}

void convert( char *out, const char *inp, unsigned sz, const char *table )
{
for( ; sz!=0; --sz, ++out, ++inp )
{
*out = table[ (unsigned char)(*inp) ];
}
}

int main(void)
{
char buf[10];

Init();
convert( buf, "Жаба", 5, cp855 );
printf(buf);
return 0;
}


System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_

Редактирано от Colombino на

Отговор
в отговор на Colombino #14

Re: Бе не е хептен без грижи

Е това имах предвид, че не е съвсем без грижи.
Това за chcp не го знаех (при мен е 866), 10x :)

Отговор
в отговор на nako #15

Re: Напишете някоя C++ програма

ето ти една истинска С++ програма, не програма на С.

#include <stdio.h>

template<class T>
class Bahur
{
private:

int size;
T * data;

public:
Bahur(T * d, int s) : data(0), size(0)
{
size = s;
data = new T[size + 1];
memcpy(data, d, size * sizeof(T));
data[size] = 0;
}
Bahur(const Bahur<T> & b)
{
size = b.GetSize();
data = new T[size + 1];
memcpy(data, (char *) (const T *) b, size * sizeof(T));
data[size] = 0;
}
~Bahur()
{
if(size > 0 && data != 0)
delete[] data;
};

Bahur<T> & operator=(const Bahur<T> & b)
{
if(data != 0)
delete[] data;
size = b.GetSize();
data = new T[size + 1];
memcpy(data, (const T *)b, size * sizeof(T));
data[size] = 0;
return *this;
}

int GetSize(void) const
{
return size;
}

operator const T* () const
{
return data;
}

};

int main(int argc, char* argv[])
{
Bahur<char> b("Bahur", 5);
Bahur<char> g("Mahur", 5);
b = Bahur<char>("Blah", 4);
g = b;

printf("%s:%s\r\n", (const char *) b, (const char *) g);

return 0;
}
Айе, радвай се на тъпотията!

Отговор
в отговор на Xyю Xyeв Xyиcтия #16

Re: Напишете някоя C++ програма

малко при b = b; се отнася в космоса, ма аре да не изпадаме в детайли :)

Отговор
в отговор на Colombino #17

Re: Бе не е хептен без грижи

Хубаво би било да си направя .dll за конвертиране
в кирилица за конзолни апп-та, с чекване на code page, ама неам време (отдавна го мисля).

Ако некои му се занимава да се обади.

Отговор
в отговор на gruhal #18

Re: Напишете някоя C++ програма

Идеба, се ше се намери некой, дет да ти бугне софтвара! За чий хуи ти е да правиш b = b?
А сега сериозно. Не се бях замислял над проблемата. Сериозна проблема. Некаква врътка има , дето ми убягва. Мисля по въпроса.
Благодаря за забележката.

Отговор
в отговор на gruhal #19

Re: Напишете някоя C++ програма

Ето фатка - кирливка за проблемата:

Bahur<T> & operator=(const Bahur<T> & b)
{
if(this != &b)
{
if(data != 0)
delete[] data;
size = b.GetSize();
data = new T[size + 1];
memcpy(data, (const T *)b, size * sizeof(T));
data[size] = 0;
}
return *this;
}

Отговор
в отговор на Xyю Xyeв Xyиcтия #20

Re: Напишете някоя C++ програма

Айде и от мене едно невинен коментар - ко ша стане, ако new-то фърли ексепщън

Лека нощ
Отговор