Вы видите копию треда, сохраненную 12 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Лабы – на хуй.
"Как мне сделать Х на чистых крестах без библиотек" – на хуй.
Qt – торт/не_торт – на хуй
Все идут на хуй.
Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode
Очередной крестостраданий тред объявляю открытым.
Перекат из >>468625
ММ, ТЫ СЛЫШАЛ, ЗАКРЫВАЙ НЕЛЕГИТИМНЫХ КРЕСТОПЕТУХОВ!!!
> Qt – торт/не_торт – на хуй
Нелегитимный тред. Сажа, скрыл, пожаловался модератору, написал в спортлото
Прыщебляди-с. А вообще -- зависит от софта. Большую часть гуев пишут на вполне плюсатом Кьюте.
[code lang="cpp"]
namespace std
{
\tclass basic_string< wchar_t >;
}
[/code]
И вообще легитимен ли этот способ?
Хотелось бы обойтись без
[code lang="cpp"]
ClassName_impl *implementation;
[/code]
Мало ли чего тебе хотелось. Написано же, что невозможно.
ОПом легитимного треда может быть только Qt-петух с сажей. Куда он проебался, на рыбалку поехал на майские? Впрочем, держите архитектурный вопросец.
Вот есть такой код (он ничего не делает):
http://ideone.com/RxMiIE
Если for (unsigned int m = 7; m <= 7; --m) (проверка на переполнение) заменить на for (int m = 7; m >= 0; --m), то с заменой отработает быстрее?
Ну блядь, совсем охуел. Треды не создаёт, мамаш чпокает.
Семинароход в треде. Сходил на заключительный семинар КРОК. В этот раз он был посвящен трудоустройству, а так как для меня это больная тема, то я после универа (с 8.00 до 16.00) ломанулся туда.
В конференц зале было дико жарко, тут самое место шутке про горящие пердаки. В общем, собрались там все хабраюзеры, даже больше, чем на первом семинаре.
Перед нами вещала HR-тян, которая поясняла за ошибки на собеседованиях. Для программиста - этот семинар был ненужен. Я бы назвал этот семинар: "Методы обхода HR-менеджера при трудоустройстве на работу". По факту, нормальному программисту будет похуй на те пункты, которые были освещены в презентации. Даже наоборот, было бы плюсом.
Например, одного КУНА зарубили на собеседовании на должность КУРЬЕРА, ибо у него был почтовый ящик сосика_на_колесах@mail.ru. Такая-то тонкота, господи.
Разобрали "ошибки" в резюме, показали идеальное резюме по мнению HR. Если кому надо - скину.
Java Java Java Java C# Java Java C#. Задумался, а не освоить ли Java, а то ведь даже сладенького хлебушка поесть не выйдет, лол.
Скрипт
Все ебусь со своими горшками. Сейчас встал вопрос о том, как оформлять программу выращивания какой-либо хуйни. В предыдущем треде сошлись на том, что нужно пилить на каком-нибудь скриптовом языке, но теперь я застрял на этапе проектирования типовой архитектуры скрипта.
Пока в голове крутится что-то вроде
{
Обязательные задачи по расписанию
//05.05.2015 добавить удобрения.
},
{
Задачи по условиям
//включить вентилятор, если t>40.
}
Пока концепции лучше в голову не приходит. Также нужен планировщик задач. Стоит ли его писать с нуля или срать в планировщик, который встроен в систему? С учетом того, что задач может быть неимоверно много? Если самому писать, то дайте ссылочки почитать, а то я вообще слабо представляю, как это реализовать.
Ноут
Думаю купить себе новый ноутбук, но так чтобы с шлинуксом, а то заебался пидориться под виртуалками, ибо текущий ноутбук оч хуево работает с Linux.
Кинцо иногда смотрю, код пишу, иногда в Halo CE гоняю.
Чего посоветуете?
Семинароход в треде. Сходил на заключительный семинар КРОК. В этот раз он был посвящен трудоустройству, а так как для меня это больная тема, то я после универа (с 8.00 до 16.00) ломанулся туда.
В конференц зале было дико жарко, тут самое место шутке про горящие пердаки. В общем, собрались там все хабраюзеры, даже больше, чем на первом семинаре.
Перед нами вещала HR-тян, которая поясняла за ошибки на собеседованиях. Для программиста - этот семинар был ненужен. Я бы назвал этот семинар: "Методы обхода HR-менеджера при трудоустройстве на работу". По факту, нормальному программисту будет похуй на те пункты, которые были освещены в презентации. Даже наоборот, было бы плюсом.
Например, одного КУНА зарубили на собеседовании на должность КУРЬЕРА, ибо у него был почтовый ящик сосика_на_колесах@mail.ru. Такая-то тонкота, господи.
Разобрали "ошибки" в резюме, показали идеальное резюме по мнению HR. Если кому надо - скину.
Java Java Java Java C# Java Java C#. Задумался, а не освоить ли Java, а то ведь даже сладенького хлебушка поесть не выйдет, лол.
Скрипт
Все ебусь со своими горшками. Сейчас встал вопрос о том, как оформлять программу выращивания какой-либо хуйни. В предыдущем треде сошлись на том, что нужно пилить на каком-нибудь скриптовом языке, но теперь я застрял на этапе проектирования типовой архитектуры скрипта.
Пока в голове крутится что-то вроде
{
Обязательные задачи по расписанию
//05.05.2015 добавить удобрения.
},
{
Задачи по условиям
//включить вентилятор, если t>40.
}
Пока концепции лучше в голову не приходит. Также нужен планировщик задач. Стоит ли его писать с нуля или срать в планировщик, который встроен в систему? С учетом того, что задач может быть неимоверно много? Если самому писать, то дайте ссылочки почитать, а то я вообще слабо представляю, как это реализовать.
Ноут
Думаю купить себе новый ноутбук, но так чтобы с шлинуксом, а то заебался пидориться под виртуалками, ибо текущий ноутбук оч хуево работает с Linux.
Кинцо иногда смотрю, код пишу, иногда в Halo CE гоняю.
Чего посоветуете?
Что за хуйнёй ты занимаешься? Полезай уже в дизассемблер или бенчмарки.
как это реализовать?
возможно ли реализовать задачу сложнее: деструктор удалит только те очереди, но которые нет внешних указателей?
>Что за горшки ещё?
Сейчас типа модно выращивать всякую залупу в домашних условиях. Я посмотрел готовые реализации, но везде либо промышленный уровень, либо унылый горшок с датчиком влажности.
Я же хочу заебашить модульную систему (чтобы петрушку выращивать, кек). Механическую часть я пока что забросил и пытаюсь запилить софт.
В частности сейчас пытаюсь придумать смеху, которая позволит задать скрипт выращивания какого-либо растения. С этим и проблема.
>Кидай.
К вечеру постараюсь.
>необходимо, чтобы деструктор экземпляра убрал и очереди
Определяешь деструктор, в нем удаляешь очереди, если они у тебя создаются в куче.
>деструктор удалит только те очереди, но которые нет внешних указателей?
Ебал ее рука. Ты чурка что ли?
Если у тебя не указатель на очередь, то деструктор сам уничтожит очереди.
> деструктор удалит только те очереди, но которые нет внешних указателей?
std shared_ptr
Читай про RAII.
> И рыбку съесть и на хуй не сесть
Хуй знает даже, что за чудной архитектурный финт тебе нужен.
Сиплюсплюсаны поясните вот учился я программировать на Visual Studio, но тут услышал о Qt и только о нем в принципе и говорят когда подразумевают С++. Что это за IDE? Visual Studio вообще не актуальна в плане программирования на плюсах?
Qt – не IDE, а фреймворк.
Студия актуальна при изготовлении спермоподелий и птушных лаб.
Толсто.
>Кидай.
Вот тут кратенький конспект семинара (самое интересное).
Идеальные месяца для поиска работы:
Ноябрь, Декабрь, Январь - хорошо.
Апрель - плохо.
Май - ниче так.
Что нужно указать в резюме:
Контактная информация
Цель
Год окончания вуза
Курсы если есть
Не нужно лишней информации
Опыт работы (дата, название компании, должность, основные обязанности, достижение)
Ключевые навыки и компетенции (может быть некоторые мелочи)
Сопроводительное письмо (6-7 предложений) в деловом стиле
Пример сопроводительного письма
Здрасьте. Я такой-то такой-то хочу туда-то туда-то, хочу работать на такой-то вакансии потому что я хочу принести пользу компании и я очень хороший и т.д.
>Фото не стоит прикреплять.
Собеседование:
Норм выглядеть.
Вежливость и пунктуальность. (Если опаздываешь - предупреди) (приходить за 10-15 минут).
Позитивный настрой и уверенность к себе.
Глубже:
Понимать мотивацию
Отвечать конкретно, но не односложно
Умение выстроить диалог
Соответствие корпоративной культуре
Не усложнять себе задачу
Не стоит врать, но можно переформулировать или умолчать
Задавать правильные вопросы (полезно спрашивать что-нибудь о компании (но не о еде...) 2-3 вопроса (перспективы развития...)
О недостатках подумать. Оборачивать либо в достоинства, либо в работу над собой.
>Кидай.
Вот тут кратенький конспект семинара (самое интересное).
Идеальные месяца для поиска работы:
Ноябрь, Декабрь, Январь - хорошо.
Апрель - плохо.
Май - ниче так.
Что нужно указать в резюме:
Контактная информация
Цель
Год окончания вуза
Курсы если есть
Не нужно лишней информации
Опыт работы (дата, название компании, должность, основные обязанности, достижение)
Ключевые навыки и компетенции (может быть некоторые мелочи)
Сопроводительное письмо (6-7 предложений) в деловом стиле
Пример сопроводительного письма
Здрасьте. Я такой-то такой-то хочу туда-то туда-то, хочу работать на такой-то вакансии потому что я хочу принести пользу компании и я очень хороший и т.д.
>Фото не стоит прикреплять.
Собеседование:
Норм выглядеть.
Вежливость и пунктуальность. (Если опаздываешь - предупреди) (приходить за 10-15 минут).
Позитивный настрой и уверенность к себе.
Глубже:
Понимать мотивацию
Отвечать конкретно, но не односложно
Умение выстроить диалог
Соответствие корпоративной культуре
Не усложнять себе задачу
Не стоит врать, но можно переформулировать или умолчать
Задавать правильные вопросы (полезно спрашивать что-нибудь о компании (но не о еде...) 2-3 вопроса (перспективы развития...)
О недостатках подумать. Оборачивать либо в достоинства, либо в работу над собой.
Сессия, призыв, малый процент отпусков. У некоторых фирм есть план наборов. В общем, HR сказала, что в эти месяца меньше всего откликов, но это вовсе не значит, что и вакансии есть. Претендентов мало, а вакансии уже могут быть закрытыми.
Borland C++ Builder 6.
{
//
};
template <class T> class B<T>:public virtual A<T>
{
//
};
class C:public B<int>
{
//ничего нет, кроме конструктора
}
при попытке экземпляра С вызвать метод из B выскакивает undefined reference to любой_метод_из_В, говнорешение таково: добавить в хэдер B строку template class B<int>;
но мне кажется, что инстанцирование B уже происходит при декларировании C, в чем проблема?
Класс С при своей компиляции должен видеть все шаблоны реализации. Реализация всех шаблонных методов класса В должна быть расположена в хедере класа В (а не в файле реализации) и включена в код класса С. Ну или делать так как ты делаешь, с декларированием конкретного варианта шаблона.
Пиздец, выкинь уже розовые очки, чудес в погроммировании не бывает.
еще вопрос в этом контексте:
B декларирует метод foo(), реализация которого зависит от параметра шаблона, foo() - приватный метод, используемый методами B, в том числе и конструктором,
если явно инстанцировать
template <> B<int>::foo()
{
//
}
где-нибудь до декларирования класса С, проблем не возникает,
но хочется инстанцировать foo() как метод С, в интересах инкапсуляции, но компилятор не дает, так как undefined reference to B<int>::foo(); in method B<int>::boo();
template <class T> class A
{
//
};
template <class T> class B: public virtual A<T>
{
virtual foo();
};
class C:B<int>
{
foo()
{
//
}
};
[code lang="cpp"]
union
{
\tint i;
\tlong l;
\tfloat f;
} v;
[/code]
Алсо, где можно найти инфы про рекурсивные структуры в C++?
Как мне через эту штуку передать int, std::string и Ogre::SceneNode за 1 раз?
Скорее всего, потому что эти фичи относительно новенькие.
а в потомке-шаблоне - можно только явно this->foo(), в противном случае
error: there are no arguments to 'foo' that depend on a template parameter, so a declaration of 'foo' must be available [-fpermissive]
foo()
^
class A
{
protected:
int a;
A next;
public:
A getNext()
{return next;}
//
};
class B:public virtual A
{
void foo()
{
//
B ptrB=new B;
//
B->getNext()->a=1;//бля, ошибка, базовый класс не может обратиться к собственному полю
dynamic_cast<B>(B->getNext())->a=1;//ok
//}
//
};
Я почему спрашиваю-то
[code lang="cpp"]
union ValueHolder {
LargestInt int_;
LargestUInt uint_;
double real_;
bool bool_;
char string_; // actually ptr to unsigned, followed by str, unless !allocated_
ObjectValues map_;
} value_;
[/code]
Код отсюда
https://github.com/open-source-parsers/jsoncpp/blob/master/include/json/value.h
int a is protected
Видел подобные конструкции в OpenCV, портировалось на разные платформы, проблем не было.
{A next;
A getNext()
{return next;}
};
template <class T> class B:virtual public A<T>;
{
B(x)
{
this->next=new B();
}
};
template <class T> class C:virtual public A<T>;
//
class D:public B<int>, public C<int>
{ D(x):B(x),C()
{
//
}
}
D d=new D();
D dNext=dynamic_cast<D>(d->getNext());
C cNext=dymamic_cast<C*>(d->getNext());
в результате выполнения этого кода dNext==NULL && cNext==NULL
хочется, чтобы внутри конструктора B(x) генерировался объект типа D
выгорит ли замена B на
template <class T, class Derived> class B
{
B(x)
{
this->next = new Derived;
}
//
};
class D:public B<int,D>, public C<int>;
эти изменения позволят получить верные dNext и cNext или нет?
{A next;
A getNext()
{return next;}
};
template <class T> class B:virtual public A<T>;
{
B(x)
{
this->next=new B();
}
};
template <class T> class C:virtual public A<T>;
//
class D:public B<int>, public C<int>
{ D(x):B(x),C()
{
//
}
}
D d=new D();
D dNext=dynamic_cast<D>(d->getNext());
C cNext=dymamic_cast<C*>(d->getNext());
в результате выполнения этого кода dNext==NULL && cNext==NULL
хочется, чтобы внутри конструктора B(x) генерировался объект типа D
выгорит ли замена B на
template <class T, class Derived> class B
{
B(x)
{
this->next = new Derived;
}
//
};
class D:public B<int,D>, public C<int>;
эти изменения позволят получить верные dNext и cNext или нет?
Обосрут, как ебаную принцесску.
Помогите переписать НОРМАЛЬНО 25 строчку (я сам себя за нее уже побил, не переживайте)
std::for_each(nums.begin(), nums.end(), [](int &n){ n = constanta; });
{
foo();
}
//нужен инстант foo, универсальный для любого B, но специфичный по A, то есть что-то вроде
template <class B> C<int,B>::foo()
{
//
}
компилятор говорит invalid use of incomplete type C<int,B>
template <class Source, class Dest> transformSourceIntoDest(Source a, Dest &b);
то есть, чтобы все эти ваши atoi, ::toInt, и т.д. были в одном месте
Как в бинарник записать вектор объектов класса, а потом считать обратно в тот же вектор?
Писать вручную сериализацию/десериализацию. Ведь автоматическую как в джяве не завезли.
Вручную записывать и читать все поля объектов
>установил CLion
>прописал ему адрес до мингв, говорит что всё збс
>не может стандартный хелловорлд, выдавая какую-то хуйню в виде ошибок
ЯСНО
> в каком фрейворке это вообще есть?
В boost есть, хотел тебя лишний раз унизить, вот и позвал. Называется boost::lexical_cast
> по логике, давно пора на уровне стандарта необходимо ввести каст, хотя бы для стандартных типов
Что ты несёшь вообще? Введены касты для всех стандартных типов, когда безопасно можно выполнить, компилятор сам это делает, когда небезопасно, нужно ему подсказать, что мол ты понимаешь, что делаешь.
Ах, эти Qt-мрази, Qt-мрази.
>Ах, эти Qt-мрази, Qt-мрази.
Qt начал свою историю тогда, когда шаблоны по стандарту были во влажных мечтах пердоликов
>Что ты несёшь вообще? Введены касты для всех стандартных типов, когда безопасно можно выполнить, компилятор сам это делает, когда небезопасно, нужно ему подсказать, что мол ты понимаешь, что делаешь.
В смысле? Без буста стандартными способами нельзя делать std::string в числа и обратно (ну еще можно писать свои костыли со всякими ссстримами или другим говном), почему - непонятно.
Ну, что поделать, пришло время сбросить эту ебоду с корабля современности. Не первая говнина почила в бозе, не последняя. А Qt-мразей перевоспитаем в шарпогоспод блягородных.
>>473360
> почему - непонятно
Потому, что создаёт затык по скорости. Потому, что не очевидны правила преобразования. Это совершенно небезопасный каст. Если тебе надо просто как-нибудь что-нибудь выводить, то пользуйся логгером. Обычно ещё и быстро очень получится, они асинхронные. Они умеют просто что-нибудь как-нибудь куда-нибудь выводить. Если нужен не лог, а продуманное решение по работе со строками — ебись.
>Потому, что создаёт затык по скорости.
Возможно, но не аргумент.
>Потому, что не очевидны правила преобразования.
Что именно неочевидно?
>Это совершенно небезопасный каст.
Напомни, пожалуйста, когда С++ стал безопасным языком.
И да, почему тогда в большинстве других современных языков эти все преобразования есть?
> Что именно неочевидно?
Правила преобразования. Они не инваринтны в терминах культуры. Особенно это касается зоопарка плавучек.
> Напомни, пожалуйста, когда С++ стал безопасным языком.
Ты что имеешь в виду вообще? Я нихуя не понимаю. Все имплиситные касты безопасны.
О том, что пора выкинуть эту говнину вместе с ублюдочным поделием, которое ты называешь qt creator
Чепушок, а чепушок, почему я тебе уже везде мерещусь? Тот пост не мой. Чем я тебя так обидел?
Поискал Java на HH.ru. 810 вакансий. С явными джуновскими требованиям уже 45 штук.
Поискал C++ на HH.ru. 564 вакансий. С явным джуновскими требованиями всего 37 штук.
Сука, как-то очень грустно.
о том что чтото глюкнуло и у тебя остаются старые базы отладочных символов, при сеансе отладки они подхватываются, но исполняемый код уже другой
Если ты хочешь число в хипе (куче) расположить то обязательно, по другому нельзя (ну там через аналоги new типа malloc, но это считай одно и тоже).
Эм, блядь, назови хоть еще одну IDE, которая сразу после установки и объявления о том, что она нашла всё, что ей нужно (а именно работающий компилятор) не может нихуя скомпилировать.
А ты тут тогда зачем?
Чтобы отправить тебя читать учебник.
union-ы по с++11, дефолтные параметры в шаблонных функция и вообще весь с++11 полноценный
Ты стандартные хедеры поставил? Пути настроил?
Щас батхертнутый спермодебил начнет кукарекать что нинужно.
К двадцатому году дождёмся. К тридцатому будет во всю использовать C++17.
class A
{
foo()
{
delete this;
}
}
int main()
{
A звездочка_a=new A;
a->foo();//объекта больше нет, а указатель не обнулился
}
это упрощенный пример, у меня полторы тысячи строк, и мне любой ценой нужно, чтобы указатель при вызове foo обнулялся, как угодно
нельзя ли как-нибудь бросить исключение, вернуться в main и произвести a=NULL;
Хуевый, очень хуевый костыль.
Есть одно прекрасное правило - "ресурсы должны освобождаться в том же месте, в котором они выделяются". Это помогает избежать кучи проблем в крестах и системном windows программировании.
В данном случае освобождать объект требуется в main - там же где этот объект создается. Можешь мне не верить и пытаться изобретать велосипед, но потом ты поймешь, что я был прав. Но когда наступит это потом - будет уже слишко поздно.
Формально в академических целях ты можешь написать "delete this", но по факту за такой код любой ТЛ тебе отрежет руки.
make_shared позволяет обойтись одной аллокацией.
Я и не решал/думал, а код говно всё-таки.
обновил ядро бубунты, теперь gdb сжирает всю память и уходит в отвал, как отлаживать без него?
>Что скажете про sync_with_stdio(false)?
Скажу, что очень хорошо, если стандарты кода в проекте запрещают сишный I/O и разрешают только iostream.
>Оно только с вводом или и с выводом работает?
Только со стандартными потоками ввода/вывода.
>А с файлами так можно?
Грубо, на каждый файл свой поток, синхронизацию чего с чем ты отключать собрался?
>>473959
>Тогда как ускорить ввод/вывод с файлами?
Отключить буферизацию потока.
#include <fstream>
std::ifstream fs;
fs.rdbuf()->pubsetbuf(0, 0);
//fs.open(...);
//...
//fs.close();
Кроме того,
If setbuf(0,0) is called on a stream before any I/O has occurred on that stream, the stream becomes unbuffered.
>Note that some compilers (eg. gcc) see opening a file as an I/O operation on the stream, so pubsetbuf should be called before opening the file (as above).
>Что скажете про sync_with_stdio(false)?
Скажу, что очень хорошо, если стандарты кода в проекте запрещают сишный I/O и разрешают только iostream.
>Оно только с вводом или и с выводом работает?
Только со стандартными потоками ввода/вывода.
>А с файлами так можно?
Грубо, на каждый файл свой поток, синхронизацию чего с чем ты отключать собрался?
>>473959
>Тогда как ускорить ввод/вывод с файлами?
Отключить буферизацию потока.
#include <fstream>
std::ifstream fs;
fs.rdbuf()->pubsetbuf(0, 0);
//fs.open(...);
//...
//fs.close();
Кроме того,
If setbuf(0,0) is called on a stream before any I/O has occurred on that stream, the stream becomes unbuffered.
>Note that some compilers (eg. gcc) see opening a file as an I/O operation on the stream, so pubsetbuf should be called before opening the file (as above).
Нет. fstream никогда нельзя использовать с большими файлами. Когда читаешь что-либо больше мегабайта, надо использовать только сишные потоки и scanf.
Щас он тебе обоснует, ага. На СО не обосновали, а петух с сосача обоснует.
[code lang="cpp]
class Room
{
private:
Room mNorthRoom;
Room mWestRoom;
Room mEastRoom;
Room mSouthRoom;
...
[/code]
Класс лабиринта не хранит всё дерево комнат, а хранит лишь указатель на текущую комнату. Соответственно, деструктор лабиринта просто вызывает деструктор текущей комнаты, а она уже в свою очередь рекурсивно удалит все остальные.
Но! Текущая комната в mNorthRoom ссылается на северную, а северная через mSouthRoom - на текущую. В результате при вызове деструктора программа уходит в бесконечную рекурсию.
Пробовал включать в класс комнаты флаг "удалено", но не сильно помогло, на некоторых моментах всё равно в бесконечную рекурсию уходит. Может быть, само архитектурное решение неидеально?
1. Как каноничней будет? Какие за и против?
if (govno) {
do shit
}
else {
do shit
}
или
if (govno)
{
do shit
}
else
{
do shit
}
2. У меня есть лаба, нужно найти найбольший элемент в матрице, помогите, не знаю с чего начать.
3. Хочу сделать псевдографический интерфейс к прожке как в ncurses. Хочу сделать на чистых крестах, в какую сторону копать?
4. Алсо, поясните за qt? Как технология, долго ли будет актуальна?
[code]
нассал опа маме в рот, пиздуй в свой бложик, будет он тут ещё
решать что на анонимной борде можно обсуждать а что нет
[/code]
1. Как каноничней будет? Какие за и против?
if (govno) {
do shit
}
else {
do shit
}
или
if (govno)
{
do shit
}
else
{
do shit
}
2. У меня есть лаба, нужно найти найбольший элемент в матрице, помогите, не знаю с чего начать.
3. Хочу сделать псевдографический интерфейс к прожке как в ncurses. Хочу сделать на чистых крестах, в какую сторону копать?
4. Алсо, поясните за qt? Как технология, долго ли будет актуальна?
[code]
нассал опа маме в рот, пиздуй в свой бложик, будет он тут ещё
решать что на анонимной борде можно обсуждать а что нет
[/code]
Ясно
> 1. Как каноничней будет? Какие за и против?
if (govno) {
...
} else {
...
}
Единственно правильный вариант
Перед удалением комнаты заходи в соседние и зануляй ссылки на удаляемую комнату.
Если лабиринт прямоугольный (прямоугольные комнаты, у каждой по 4 соседа) есть вариант не хранить всех четырех соседов в каждой комнате, а только 2 (северного и восточного например), тогда у тебя не будет перекрестных ссылок. Правда к твоей проблеме это отношения не имеет, при удалении комнаты все равно нужно удалять ссылки на нее везде, иначе словишь сегфолт.
>Перед удалением комнаты заходи в соседние и зануляй ссылки на удаляемую комнату.
Слушай, а ведь великолепная идея. Спасибо большое.
Сука, что же ты делаешь, я чуть не обосрался от смеха.
>1. Как каноничней будет? Какие за и против?
Как тебе приятнее, так и делай. Главное — постоянство. Если взял один стиль, всегда ему следуй. Естественно не стоит уходить в крайности и делать 15 пробелов между скобками. Читабельность всегда должна быть в приоритете.
>>474378
Нахуй — твое единственно правильное направление движения.
итак, моя программа с кучей классов проходит дымовые тесты, но у меня есть гнетущие подозрения, что где-то я не подчищаю память.
большие объекты я удаляю основательно, но где-нибудь какая-нибудь микрозалупа доползает до точки выхода, а матушка учила меня всегда смывать самому
есть ли удобные программные средства, которые позволят отследить такое непотребство?
Valgrind.
Пришёл с ебанутыми вопросами и ещё шапку осуждает, охуевший птушник, блядь.
Можешь с файлами помочь разобраться? Есть хорошие статьи на русском как с ними быстро в с++ работать и описаны подводные камни? Подсмотрел в чужом решении и начал писать так.
#include<fstream>
std::ofstream fout("out.txt");
int main (){fout<<"out\n";}
Стоит для ввода и вывода делать разные потоки? Их лучше в глобальной области видимости объявлять в main или отдельной процедурой? Не использую open() close() и getline() а пишу << и >> это сильно влияет на скорость работы и почему у меня без них всё работает? Что за буфер и для чего он? У тебя pubsetbuf(0, 0) один 0 это размер а второй что? Должен быть указатель на массив char? Находил какой-то stringstream он для строк работает быстрее обычного ввода/вывода? А его как-то можно ускорить? Есть его аналоги для для других стандартных типов? Может есть какой-то справочник где все ответы на мои вопросы по порядку написаны и не нужно переключатся по ссылкам от одного незнакомого оператора к другому?
Я имел ввиду new shared_ptr< Type > (...);
Короче, как они там, ставят минимальное окружение или чего?
Ввод/вывод в стиле С с файлами работает быстрее? В K&R седьмую главу посмотрел и там про скорость ничего не написано как и про буфер. Буфер нужен чтобы 1 раз обратится к диску а потом всё время обращаться к памяти? Тогда почему его отключение ускоряет работу программы? Не могу нагуглить книгу по оптимизации программ на С++ Можешь подсказать такую?
Ничего не простим. Отправляйся обратно в /б/
>Стоит для ввода и вывода делать разные потоки?
Если ты пишешь/читаешь файл поочерёдно много раз, то нет, стоит создать std::fstream fs;
Если ты например сначала читаешь из файла, а потом пишешь в него же, больше не читая ни разу, то здесь чисто в целях избежания ошибок я бы создал сначала std::ifstream ifs; а после закрытия файла на чтение создал бы std::ofstream ofs; во избежание потенциальных ошибок.
Что там будет с быстродействием я без понятия. Насколько дорого конструировать поток я тоже не знаю. Читал только только, что открытие файла дорогая операция.
>Их лучше в глобальной области видимости объявлять в main или отдельной процедурой?
Ну очевидно зависит от ситуации.
>Не использую open() close() и getline() а пишу << и >> это сильно влияет на скорость работы и почему у меня без них всё работает?
open() и close() нужны для для открытия/закрытия файлов в одном и том же потоке. Удобно, когда подряд читаешь или пишешь несколько файлов один строго перед другим. Такая нано-оптимизация, чтобы не конструировать объект потока. Опять повторюсь, что не знаю, насколько дорого конструировать.
По поводу скорости работы -- я использую низкоуровневые функции .read() и .write(), они самые быстрые, если их правильно готовить. Если отключаешь буфер, то пиши данные блоками в цикле по 4 мегабайта, например.
Вообще, тут вступает ОС-специфичное поведение. Выше там кто-то безосновательно говорит не больше мегабайта. Ну можешь помегабайтно писать. Для чтения рассуждения, полагаю, аналогичны.
>У тебя pubsetbuf(0, 0) один 0 это размер а второй что? Должен быть указатель на массив char?
Быстро, решительно: http://www.cplusplus.com/reference/streambuf/streambuf/pubsetbuf/
Как нетрудно догадаться, pubsetbuf(0, 0) вместо указателя на массив и размера даёт отключение буферизации потока.
>Находил какой-то stringstream он для строк работает быстрее обычного ввода/вывода?
Нет, существенно медленнее. Это создано для удобства. Вообще, стандартная билиотека во многом создана для удобства.
http://habrahabr.ru/post/246257/
>А его как-то можно ускорить?
Там же пишется о том, что дорого конструировать объект типа, лучше переиспользовать. Тогда в несколько раз выиграешь в скорости.
>Есть его аналоги для для других стандартных типов?
Аналог медленного говна, зачем тебе? Используй reinterpret_cast для указателей (правильно высчитывай размеры массивов при этом).
>Может есть какой-то справочник где все ответы на мои вопросы по порядку написаны и не нужно переключатся по ссылкам от одного незнакомого оператора к другому?
Нормальных книжек по программированию не существует.
>Стоит для ввода и вывода делать разные потоки?
Если ты пишешь/читаешь файл поочерёдно много раз, то нет, стоит создать std::fstream fs;
Если ты например сначала читаешь из файла, а потом пишешь в него же, больше не читая ни разу, то здесь чисто в целях избежания ошибок я бы создал сначала std::ifstream ifs; а после закрытия файла на чтение создал бы std::ofstream ofs; во избежание потенциальных ошибок.
Что там будет с быстродействием я без понятия. Насколько дорого конструировать поток я тоже не знаю. Читал только только, что открытие файла дорогая операция.
>Их лучше в глобальной области видимости объявлять в main или отдельной процедурой?
Ну очевидно зависит от ситуации.
>Не использую open() close() и getline() а пишу << и >> это сильно влияет на скорость работы и почему у меня без них всё работает?
open() и close() нужны для для открытия/закрытия файлов в одном и том же потоке. Удобно, когда подряд читаешь или пишешь несколько файлов один строго перед другим. Такая нано-оптимизация, чтобы не конструировать объект потока. Опять повторюсь, что не знаю, насколько дорого конструировать.
По поводу скорости работы -- я использую низкоуровневые функции .read() и .write(), они самые быстрые, если их правильно готовить. Если отключаешь буфер, то пиши данные блоками в цикле по 4 мегабайта, например.
Вообще, тут вступает ОС-специфичное поведение. Выше там кто-то безосновательно говорит не больше мегабайта. Ну можешь помегабайтно писать. Для чтения рассуждения, полагаю, аналогичны.
>У тебя pubsetbuf(0, 0) один 0 это размер а второй что? Должен быть указатель на массив char?
Быстро, решительно: http://www.cplusplus.com/reference/streambuf/streambuf/pubsetbuf/
Как нетрудно догадаться, pubsetbuf(0, 0) вместо указателя на массив и размера даёт отключение буферизации потока.
>Находил какой-то stringstream он для строк работает быстрее обычного ввода/вывода?
Нет, существенно медленнее. Это создано для удобства. Вообще, стандартная билиотека во многом создана для удобства.
http://habrahabr.ru/post/246257/
>А его как-то можно ускорить?
Там же пишется о том, что дорого конструировать объект типа, лучше переиспользовать. Тогда в несколько раз выиграешь в скорости.
>Есть его аналоги для для других стандартных типов?
Аналог медленного говна, зачем тебе? Используй reinterpret_cast для указателей (правильно высчитывай размеры массивов при этом).
>Может есть какой-то справочник где все ответы на мои вопросы по порядку написаны и не нужно переключатся по ссылкам от одного незнакомого оператора к другому?
Нормальных книжек по программированию не существует.
>Ввод/вывод в стиле С с файлами работает быстрее?
Пока не померяешь, не узнаешь. С грамотным использованием .read() .write() точно не проиграешь.
>В K&R седьмую главу посмотрел и там про скорость ничего не написано как и про буфер. Буфер нужен чтобы 1 раз обратится к диску а потом всё время обращаться к памяти?
Буфер нужен, чтобы если ты читаешь больше, чем операционная система может записать/прочесть за раз, не случилось чего нехорошего. Я так понимаю, зачем нужен буфер. Но я самый умный и отключаю его, записывая через цикл куски, априори меньшие этого значения. Получается всё равно быстрее, причём намного. Есть подозрения, что винда говно. Ну и ладно, всё равно мой вариант быстро работает.
>Не могу нагуглить книгу по оптимизации программ на С++ Можешь подсказать такую?
Опытные люди (практики, а не диванные олимпиадники и прочие функциональщики) советуют Скотта Майерса с его 35 или 42 советами. Сам не читал, потому что ленивый пень, но собираюсь.
1) PHP и программирование сайтов
2) С++/Qt
чтобы не тревожить каждый раз форумы и stackoverflow? Естественно, обращаться буду только тогда, когда не смогу нагуглить ответ сам.
Ответы на почти все твои вопросы уже есть на форумах и stackoverflow. Годный и добрый человек не нужен, на всех не напасёшься.
Я просто спросил, если ты к ним не относишься - окей, не говори за всех. В свое время я нашел такого годного человека по верстке и сам был таким в вещах, не связанных с программированием.
По пыхе не могу, по крестам/кьюту что-нибудь могу подсказать (кроме opengl, с ним не работал).
Спасибо. Помог.
Закинь потом id-шник Qt-мрази, интересно на его прыщавое ебало посмотреть
В /s/
Семён Семёныч
Так это ты же обиженка, рвёшься с сажей постоянно, неудовлетворённый, злой такой. Вот опять
>ЭТА У ТИБЯ БАТТХЁРТ, ЭТА ТИ ПЛАХОЙ!! МАААААМ, ЭТО ОН ПЛОХОЙ, НУ МААААМ!!!
Ясно.
Ты выполз внезапно и начал на меня кукарекать, теперь еще оправдываешься, что это я злой. Охуенная логика. Впрочем, цели своей ты достиг - ты меня раздражаешь своим жужжанием.
Продолжай.
Чего ты на него такой обиженный? У него кроме зацикленности на Qt больше закидонов нет, но это его личное дело, я считаю.
Пишу сюда, потому что не знаю, где еще можно спросить
Для железа есть тематика. А тут даже ассемблер треда нет.
Что я делаю не так?
((1 / 4) (1 + (pow((-1), n))(5(pow(n,2))-5(pow(n,4))-2*(pow(n,5))-1)))
Почему ты решил что что-то не так?
http://ideone.com/E5f7iU -> http://ideone.com/lt4OSV
Таких ньюфагов я давно не видел.
мимо-рубиблядь
- Это же Абстрактная фабрика! На чём ты кодил до этого?
- На Джаве.
- Жабапидор! - в один голос заорали все 20 человек.
- Жабапидор! Жабапидор! Жабапидор!
Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать джавапидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:
- Жабапидор!
В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и джавапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох джавапидор даже дело заводить не стали.
- Это же Абстрактная фабрика! На чём ты кодил до этого?
- На Джаве.
- Жабапидор! - в один голос заорали все 20 человек.
- Жабапидор! Жабапидор! Жабапидор!
Кто-то включил сирену. Над дверьми замигали красные лампочки тревоги. На окнах мгновенно сомкнулись плотные жалюзи. В офисе одновременно бывает два отдела человек по сорок. На обеде вся эта толпа собирается на первом этаже, где яблоку негде упасть. А поэтому, как охранники ни пытались вырвать джавапидора из рук разъяренной толпы, им это не удалось. По всему офису стоял сплошной рев:
- Жабапидор!
В коридоре его сразу же сбили с ног. Используя галстук как поводок, его тащили через весь коридор, передавая из рук в руки. Поэтому получалось так, что никакого движения в коридоре не происходит, но и джавапидора тоже нет. Его заволокли в каптерку под лестницей, где хранятся ведра и швабры с тряпками, и там закрыли. Под конец рабочего дня он всё же появился. За получасовой обед его изнасиловали несколько человек. Сопротивляться было бы бесполезно. Через день на нем чистым оставалось одно лицо, а на теле не было живого места. Он превращался в мразь, в животное. Его били все, даже дизайнеры и уборщицы. Его заставляли есть говно и опарышей. В очко ему совали битые лампочки, живых птиц и змей. Он стал «дельфином» – в нужнике пятнадцать дырок, он ныряет в первую, выныривает, ныряет во вторую... И так – до конца. От него постоянно воняло. С ним невозможно было рядом находиться. Был такой случай: к нам устроился работать Степаныч. Степаныч сидит на толчке, а кто-то снизу через очко хватает его за яйца. Степаныч с воплем вылетает в коридор без штанов. Напротив - айти отдел. Смех не стихал долго... Потом Степаныч забил его кирзовым сапогом насмерть. Менты как узнали, что сдох джавапидор даже дело заводить не стали.
Кто-нибудь осилит это чудо поправить?
Там выводится неверное кол-во узлов дерева, при этом само дерево отрисовывается корректно.
Ноуп. В твоём выводе фактически 11 узлов, вот тут:
Обход в ширину: a_b_g_c_f_h_m_d_e_i_n_j_o_k_l_
Пройдено узлов: 15
15 отображается. Вот этого вот хвоста: j_o_k_l_ быть не должно, не знаю, откуда он вылез.
Что-то я хуйню непонятную написал. Короче, должно быть 11как видно на самом дереве, а вывелось 15.
А может быть должны быть 15, а вывелось только 11? Проблемы в выводе, как минимум не влазит дерево, сделай больше строчек на вывод. И иногда там вроде проебываются некоторые вершины, я бы советовал выводить элементы по фиксированым координатам, если это не сильно принципиально.
Крестомразь в отделе сишников.
(1)
[code lang="cpp"]
typename std::decay< decltype (object.begin ()) >::type &it
[/code]
этому?
[code lang="cpp"]
decltype (object.begin ()) &it
[/code]
С++14 пока не завезли, поэтому лямбд с auto нету. А у object'а ебанутый тип, который больше (1)
https://ololoepepe.me/board/b
https://github.com/ololoepepe/ololord
+ Файлы из треда теперь скачиваются по две штуки одновременно, чтобы снизить влияние пинга.
+ Для асинхронного постинга используется нормальный XHR вместо хака с iframe.
+ Реализована возможность добавлять файлы к уже запощенному посту.
+ Улучшена глагне (можно добавлять кастомный контент, а так же список сайтов-друзей).
+ Добавлена доска /d/. На этой доске отображается User-Agent, как в спец. треде куклоскрипта.
+ Добавлена система подсчета постов.
+ Усовершенствована разметка ссылок, добавлен тег [url], реализована разметка e-mail.
+ Исправлены быстрые ответы с доски.
+ Добавлен выбор действия после быстрого ответа (в настройках).
+ Исключения теперь отлавливаются во всех потоках.
+ Исправлена система авто-обновления тредов.
+ Усовершенствована система правил (можно указать, какие общие правила включать на доску).
+ Улучшена кнопка "Пожаловаться".
+ Реализована поддержка частичных GET-запросов (аудио и видео благодаря этому теперь перематываются).
+ Реализовано встраивание видео с YouTube. Вместо ссылки подставляется название видео.
+ Теперь сохраняется дополнительная информация об аудио и видео (длительность, битрейт, теги).
+ Реализована поддержка заголовков Last-Modified/If-Modified-Since (кеширование браузером).
+ Улучшен AJAX-запрос getNewPosts (если номер последнего поста равен 0, возвращаются все посты треда).
+ Добавлен AJAX-запрос getThreadNumbers (возвращает номера всех тредов с доски).
+ Добавлен AJAX-запрос getFileMetaData (возвращает мета-данные о файле, такие как длительность, битрейт или теги).
+ Добавлена страница-плейлист (аудио-файлы теперь можно добавлять в плей-лист).
+ Добавлена система "Избранных" тредов (выскакивает окошко, если в избранных тредах появились новые посты).
+ Добавлена возможность кешировать файлы вручную (например, сразу после запуска сервера).
Алсо, оформление по случаю.
https://ololoepepe.me/board/b
https://github.com/ololoepepe/ololord
+ Файлы из треда теперь скачиваются по две штуки одновременно, чтобы снизить влияние пинга.
+ Для асинхронного постинга используется нормальный XHR вместо хака с iframe.
+ Реализована возможность добавлять файлы к уже запощенному посту.
+ Улучшена глагне (можно добавлять кастомный контент, а так же список сайтов-друзей).
+ Добавлена доска /d/. На этой доске отображается User-Agent, как в спец. треде куклоскрипта.
+ Добавлена система подсчета постов.
+ Усовершенствована разметка ссылок, добавлен тег [url], реализована разметка e-mail.
+ Исправлены быстрые ответы с доски.
+ Добавлен выбор действия после быстрого ответа (в настройках).
+ Исключения теперь отлавливаются во всех потоках.
+ Исправлена система авто-обновления тредов.
+ Усовершенствована система правил (можно указать, какие общие правила включать на доску).
+ Улучшена кнопка "Пожаловаться".
+ Реализована поддержка частичных GET-запросов (аудио и видео благодаря этому теперь перематываются).
+ Реализовано встраивание видео с YouTube. Вместо ссылки подставляется название видео.
+ Теперь сохраняется дополнительная информация об аудио и видео (длительность, битрейт, теги).
+ Реализована поддержка заголовков Last-Modified/If-Modified-Since (кеширование браузером).
+ Улучшен AJAX-запрос getNewPosts (если номер последнего поста равен 0, возвращаются все посты треда).
+ Добавлен AJAX-запрос getThreadNumbers (возвращает номера всех тредов с доски).
+ Добавлен AJAX-запрос getFileMetaData (возвращает мета-данные о файле, такие как длительность, битрейт или теги).
+ Добавлена страница-плейлист (аудио-файлы теперь можно добавлять в плей-лист).
+ Добавлена система "Избранных" тредов (выскакивает окошко, если в избранных тредах появились новые посты).
+ Добавлена возможность кешировать файлы вручную (например, сразу после запуска сервера).
Алсо, оформление по случаю.
Пастой про пионера тралят коммипетухов в /po/
>/b/ратство
Пиздарики. Еще одной лицемерной пораши нехватало.
>Добавлена система подсчета постов
А вот и зонды пошли. Нахуя?
Че ты несешь, поехавший, какие зонды, блять?
Обосновывать что, твою неспособность в ООП?
Обрати внимание на Go, думаю, он тебе понравится.
> Зачем ты пишешь goto-портянки?
> Обоснуй. Мне как в C на каждый чих процедуру делать, даже для main?
Двачую.
Дак нечего отрицать то, ты кудахтнул что у меня, мол, код не такой, как тебе хочется, а где - не сказал. Вообще, спорить со страдающим ООП головного мозга не вижу смысла, но ты показывай примеры, может поясню.
Потому что у адекватных людей "c++ considered harmful"
Сделал структуру (первый спойлер), и короче компилятор пишет, что "next" has not been declared. И эта ошибка по всей программе.
С хрена бы он не объявлен? Поясните.
Пример функции, где так пишет, во втором спойлере.
struct L
{
int symb;
L next;
};
typedef L LL;
LL Head;
L DeleteL(LL Head, LL DL) //DL удаляемый
{
LL temp = new LL; //просмотр от головы
temp = Head;
while (temp->next != DL)
temp = temp->next;
temp->next = DL;
if (temp == NULL)
break;
temp->next = DL->next;
delete DL;
return(temp); //возвращает адрес узла после удалённого
}
Сделал структуру (первый спойлер), и короче компилятор пишет, что "next" has not been declared. И эта ошибка по всей программе.
С хрена бы он не объявлен? Поясните.
Пример функции, где так пишет, во втором спойлере.
struct L
{
int symb;
L next;
};
typedef L LL;
LL Head;
L DeleteL(LL Head, LL DL) //DL удаляемый
{
LL temp = new LL; //просмотр от головы
temp = Head;
while (temp->next != DL)
temp = temp->next;
temp->next = DL;
if (temp == NULL)
break;
temp->next = DL->next;
delete DL;
return(temp); //возвращает адрес узла после удалённого
}
В С нужно писать не L а struct L по всей программе. Или объявить структуру как
typedef struct
{
int symb;
struct L* next;
} L;
> Или объявить структуру как
Забыл уточнить что с таким объявлением дальше в программе можно использовать L а не struct L. Но в самом объявлении нужно struct добавить.
>>475919
Наверное у тебя есть выше "typedef struct L L;"
Тогда с объявлением структуры все ок, ты напутал скорее всего с LL. Ты объявил LL как указатель на L, потом содал переменную temp типа указатель на LL, тоесть указатель на указатель, потом ты применяешь к нему оператор -> что приводит к применению оператора точки к указателю, что ошибка.
А как грамотно переходить? Я вообще не уверен с объявлением LL, если честно, но эта хреновина применяется, когда делаешь голову списка в методичках, без неё ещё больше фейлов.
Пробовал char::Parse.
А ещё в мэйне данные из структуры не признаёт объявленными.
Тогда оставь так как было, там где с оператором -> ошибка используй что-то типа (*temp)->next
Спасибо, вроде компилится.
Правда, в ходе выполнения вылетает почему-то, не могу косяк найти.
бамп
В самое лабе нужно сделать ввод 8 записей (Имя, Фамилия, Знак зодиака, дата рождения (массив из 3 значений)).
По нажатии на кнопку их отсортировать по дате. И по нажатию другой кнопки отфильтровать по знаку зодиака. Знак зодиака вводится в окошко textBox.
Я почти все сделал, кроме последнего.
http://pastebin.com/1up51MFT
13 строка - получаю знак зодиака человека по списку и его нужно сравнить с написанным в textBox1, но как?
Их нужно к одному типу привести перед сравнением, каким образом сделать это? Сравнивать строки я умею, лол.
http://pastebin.com/DtaXXDfT
В чем именно проблема? soc у тебя строка, в textBox1->Text строка, по твоему мнению строки ты сравнивать имеешь, сравниваешь, профит.
В смысле, у String^ разве нет тупо оператора ==
>soc->CompareTo(textBox1->Text);
Он просто перебивает мне выдает весь список.
if ((soc->CompareTo(textBox1->Text)) == 0)
А так выдает, что не равны строки.
Надо скачивать файл из инторнетов, посмотрел как это сделать с помощью QNetworkAccessManager, скомпилил предоставленный пример с офсайта.
И ВОТ ХУЙ.
Он не работает. Вернее, блядь, не всегда работает.
К внешнему инторнету я подключён по pppoe. Когда запускаю пример - не работает.
Когда включаю VPN - всё начинает работать.
ЧТО БЛЯДЬ ЭТО ЗА ХУЙНЯ? И ЭТО СТАБИЛЬНОСТЬ? И ЭТО КРОССПЛАТФОРМЕННОСТЬ? ОХУЕТЬ БЛЯДЬ, ВЕСЬ ДЕНЬ СЕГОДНЯ С ЭТИМ ПРОЕБАЛСЯ, ПИЗДААААА.
Почему бы тебе не выложить код который не работает
(лучше в виде ссылки на гитхуб или еще куда) вместо
изливания эмоций ?
Это пример хорошего резюме на фото?
>активная жизненная позиция, аналитический склад ума
Серьезно такую хуйню указывают?
Я же говорю, что пример с официального сайта.
http://doc.qt.io/qt-5/qtnetwork-http-example.html
Готов поспорить, что ежели у вас, господа, не pppoe-подключение, то всё будет работать.
Ебал в рот, сколько же я времени на эту хуйню зря потратил.
Добавлю, нужно ещё изменить адрес по умолчанию "qt-project.org" на что-нибудь живое
Почитай https://bugreports.qt.io/browse/QTBUG-23643
http://doc.qt.io/qt-5/qnetworkconfiguration.html
и
http://doc.qt.io/qt-5/qnetworkconfigurationmanager.html
Проверь, какая конфигурация бывает выбрана при ошибке.
[code lang="cpp"]
Vec(initializer_list<T> l)
{
\tsize_t idx = 0;
\tfor (T i : l)
\t arr[idx++] = i;
}
[/code]
, где аrr - array<T, N>
Этот код мне не нравится, и я хочу пробросить initializer_list в массив, приверно так
[code lang="cpp"]
template <class ... Types>
Vec(const Types& ... args): arr({args...}) { }
[/code]
Это возможно?
В лоб:
c[0]<<24|c[1]<<16|c[2]<<8|c[3]
Каст к указателю на uint32_t, вычитывание uint32_t и bswap интринсиком часто будет быстрее, но менее портабельно. Нормальные люди выбирают этот вариант. Дрочащие на кроссплатформенность - решение со сдвигами.
помогите пожалуйста решить задачу, или хотя бы подскажите алгоритм решения))
В натуральном числе n найти наибольшую по длине возрастающую (убывающую) последовательность цифр и индексы её начала и конца. Или вывести сообщение “НЕТ”.
Иди на хуй.
Лолблять. Иди нахуй.
Что это за хуйня? Експонента? Структуры данных? Решается же за один проход, линейная сложность.
А, и то правда.
ну так подскажи решение пожалуйста, но мне надо решить эту задачу без создания массива для цифр числа
Да не суть, хоть mingw.
Ну так-то и Notepad++ "может" в кресты - подсветка и базовое автодополнение есть, хули ещё надо?
Не надо пытаться сделать троллейбус из буханки. Ему нужна IDE, а не блокнот. Notepad++ охуенный блокнот, но не IDE.
Ну так твой экспресс тот же нотпад - подсветка да автодополнение кое-какое, ни отладки нихуя.
Оно только для шарпа и годно, может быть.
Отсоси потом проси.
Ну хуй знает, когда я последний раз смотрел - его не было.
Да и вообще, если хочется навернуть говна, то почему не коммюнити-версию обычной студии? Она-то точно умеет в кресты, дебаггер и прочее.
Ну или Qt Creator, как выше предлагали.
Что нужно знать, чтобы взяли джуном на крестах?
Последний раз именно на C++ писал что-то вроде парсера функций в n-арное дерево с вычислением значений в точке.
Да однохуйственно.
[CODE lang="cpp"]uint32_t i = (buffer[4] << 24) | (buffer[5] << 16) | (buffer[6] << 8) | buffer[7];[/CODE]
Тоже какую-то нереальную хуиту на выходе даёт.
Дебаггер: содержимое buffer, что ожидается, что возвращает. Вот это все покажи.
> содержимое buffer
Эээм, у меня вектор с чарами из двухметровго бинаря, хуй знает как это тебе показать...
> что ожидается
2523375
> что возвращает
>>476294 - 2523375 - всё верно
>>476378 - 4294967279 - не представляю вообще что это, откуда и как оно вообще получилось
>>476382 - 4286588416 - аналогично
>хуй знает как это тебе показать
каком кверху, блять
[code lang="cpp"]
for (i = 0; i < 8; ++i)
std::cout << buffer << " ";
[/code]
В hex похуй отрицательное или нет. У него с головой проблема, а не с кастами.
Ты бы мог читать uint32_t сразу, как >>476294 тут делал, и потом байты местами менять:
uint32_t uint32_swap(uint32_t n) {
return ((n >> 24) & 0xff) | ((n >> 8) & 0xff00) | ((n & 0xff) << 24) | ((n & 0xff00) << 8);
}
но это .swf с сигнатурой CWS, т.е., он сжат. Т.е., тебе все равно придется его разжимать и работать с памятью. Поэтому лучше сразу приготовься к коду типа >>476382, но не забывай, что буфер у тебя должен быть типа unsigned char.
поскажите пожалуйста алгоритм нахождения наибольшей по длине возрастающей последовательности в натуральном числе
Внимательно слушаю результаты первой страницы гугла
Хуи в твоем рту можно посчитать. Хотя нет, для такого количества мощности счетного множества будет маловато.
Не подскажу, соси хуй, тебе в жизни пригодится с таким интеллектом.
я не понимаю,объясни пожалуйста подробнее этот алгоритм, и мне нужно решить эту лабу без составления массива из цифр числа
Нет, я LSD-сортировку не могу запилить на массиве строк. Везде есть примеры на массиве чисел, а мне массив строк нужен, не понимат.
Ебанутый? На массиве строк еще проще. Не надо маской вытаскивать значение разряда. Просто s1.at(2) s2.at(2) и все.
Тебя в детстве головой вниз роняли?
Нихуя не понимающий врывается в тред.
Использую QT 5.4.1 и mingw 4.9.1 x32.
Дано:
Собрал qt из исходников статически. Этим qt'ом собрал статически прогу, в итоге - на семерке и восьмерке все замечательно, а на xp выдает "Entry point for vsprintf_s not found in msvcrt.dll".
Сталкивался кто-нибудь? Из гугла выяснил только то, что такой баг был в каком-то релизе mingw, но то было в 2013, а сейчас все пофикшено.
Как вообще сделать представление в восьмеричной системе?
Линковаться с msvcrt можно только в студии. Mingw всегда использует системный dll. Переводить все на студию не хочу, ищу другой вариант.
Спасибо.
>Двощ, как сделать из целого числа дробное?
int i;
double d;
d=double(i);
>Чтобы в целой части остался 0.
А он там был? Тебе 0 в дробь превратить надо? Тогда пиши вместо нуля 0.0
Мне нужно всю целую часть перекинуть в дробную.
Допустим, дается 29317, а мне нужно получить 0.29317
Отбой, заработало.
Как ни странно, проблема была в mingw, обновил до самого свежего. Нужно было сразу попробовать, а не верить гуглу.
Не получается написать конструктор для двумерного массива.
Сконвертируй в строку, прибавь к "0.", а затем обратно в double
Такой записью ты можешь проинициализировать массив, но не происвоить значения уже существующему. Юзай std::array или std::copy или std::vector.
двощ помоги, странно работает код,
этот код определяет длину числа, так вот, когда я ввожу число в котором цифр меньше десяти то код работает правильно, а когда 10 и более но код неправильно определяет длину числа, подскажи пожалуйста с чем это связано и как исправить
вот сам код:
http://pastebin.com/n7Gp2qZt
Ты понимаешь, что у инта диапазон значений - 2^32, т.е. 10 цифр? Перепиши чтоб юзало long long - будет 20 цифр (2^64).
Надо чтоб с неограниченной длиной числа работало? Тупо читай как строку и считай число символов.
Надо через математические операции? Длинная арифметика.
Аноны, как сделать сложение в восьмеричной системе?
first - целая часть, second1 - дробная.
second1 нужно в восьмеричную перевести и сложить с first. Но как?
Для одномерного std::array<int, 3> a = {1,2,3};
а как будет для двумерного? <int, 8,8> и <int, (8,8)> не канает.
В гугле забанили?
Использовать сверху вниз.
https://www.youtube.com/playlist?list=PLbmlzoDQrXVFC13GjpPrJxl6mzTiX65gs или http://www.youtube.com/playlist?list=PL2F919ADECA5E39A6 или https://tech-mail.ru/materials/video/
http://www.itmathrepetitor.ru/zadachi-po-programmirovaniyu/
http://www.ozon.ru/context/detail/id/5410595/
http://hyperpolyglot.org/cpp
Затем ответвление в софт или спортивное программирование.
Софт:
http://www.amazon.com/Professional-C-Marc-Gregoire/dp/1118858050/ref=sr_1_2?s=books&ie=UTF8&qid=1431362511&sr=1-2&keywords=professional+programming+c%2B%2B
http://www.amazon.com/Game-Programming-All-Jonathan-Harbour/dp/1598632892/ref=sr_1_1?s=books&ie=UTF8&qid=1431362593&sr=1-1&keywords=game+programming+all+in+one
http://www.youtube.com/watch?v=6KtOzh0StTc&list=PL2D1942A4688E9D63
Спорт:
http://e-maxx.ru/algo/
Дасгупт, Кормен, Орлов, Техносфера.
http://codeforces.com/
http://www.topcoder.com/
не, не забанили. Спасибо большое.
Инициализировать - ничем. Проблема в коде слева на твоем пике - ты сначала объявляешь массив, а потом пытаешься ему список инициализации присвоить. Это не инициализация, инициализация - это когда сразу при объявлении.
>>476981
В этом разделе есть прикрепленный тред. Там есть ОП-пик. Посмотри на него.
К сожалению, нет. Стандартные рекомендации, решение задачек.
Хуй знает, вообще одного лафоре уже достаточно чтобы начать что-то кодить. Со всем, что он не покрывает - по ходу дела разберешься, там уже будешь знать что читать, в какую сторону копать и т.д.
Благодарю
Определенно надо, что бы подобные мне не засирали тред вопросами.
strh (стринг) остается со значением track, когда должно быть
zz
А i2 остается с первым внесенным значением, те 1, хотя далее из файла должны загружаться 2 3 4.
пиздец
Пиздец, товарищ. Кто вас так программный код писать учил? Хуй знает, что там творится, кидай полный код, либо перепиши по-человечески.
Передавать везде, где он используется, очевидно же.
>Полного слишком много
>Многие переменные глобальные
Тогда ты тем более идёшь нахуй, никто не будет угадывать что делает твоя портянка.
мимо
Угадывать не нужно.
Программа работает, но выдает проверочные оповещения.
Получается, что:
При чтении из файла в одну и ту же переменную она не обновляется. (используется только в проверке условия совпадения)
Так должно быть?
Покажи свое последнее приложение
Иди сразу на codility или hackerrank. Годные задачи на алгоритмы. Ещё тимус
Нет, не должно быть. Ты где-то обосрался. Чтобы понять где - попробуй для начала вместо невнятных проверочных сообщений просто выводить, что только что считал.
Выводит одно и то же, будто второй раз чтение в эту же переменную пропускается.
Форматирование файла правильное? На пике во втором столбце нули выглядят будто без пробела написаны.
так и есть
помогите пожалуйста с кодом;
мне нужно в натуральном числе найти наибольшую возрастающую последовательность и индексы её начала и конца, так вот, длину наибольшей последовательности программа определяет правильно, а вот индексконца пследовательности не всегда
например, при вводе числа 71232 всё работает правильно, а при вводе числа 1212123 уже индексы начала и конца последовательности определяются неверно, подскажите пожалуйста как это исправить))
http://pastebin.com/2DCnyM2r
Спасибо анон. В глаза долбюсь.
Проверь чему равны fail и bad флаги после чтения (YP.fail() YP.bad())
>сложного
>имиджборду
Лел. Крестовая часть борды (бэкенд) элементарная, в основном написание ее заключается в борьбе с отсутствием нормального ORM, ебле в жопу мьютексами и прикручивании разного говна для thumbnailing-а, извлечения тегов из аудио и прочего подобного. Это, конечно, не лаба_3, но и не сложно. JS-часть и то сложнее выходит (если ты конечно не очередную ничего не могущую парашу делаешь).
Напиши, например, 3д игру (со своим движком, разумеется). Или текстовый редактор с мультикурсором, автодоплнением, рефакторингом и прочими современными ништяками. Но будь готов обнаружить себя через год заросшим, немытым, вылетевшим из шараги, с геморроем и сколиозом. Но здорово выросшим как специалист.
Считывать число в инте это смех да грех. Можно в строковом типе находить наибольшую возрастающую последовательность.
Да и ответ он у тебя неправильный выводит в принцепи.
дело в том, что в условии лабы написано:
!!! Для цифр числа массив не создавать.!!!
поэтому помоги пожалуйста исправить условие
Тупое условие, не позволяет ДП применять, а там последовательность возрастающая может перескакивать через цифры? Или они подряд должны идти?
вот условие :
В натуральном числе n найти наибольшую по длине возрастающую (убывающую) последовательность цифр и индексы её начала и конца. Или вывести сообщение “НЕТ”.
!!! Для цифр числа массив не создавать.!!!
>наибольшую по длине возрастающую (убывающую) последовательность цифр
1223455631135689
Какая из них?
Можно же фор от 1ой до последней цифры и в него вложить цикл while которой будет работать пока текущая цифра больше предыдущей и считает длину а после конца вайла сравнивать с максимальной длиной.
Блин, да этот массив чисто для считывания, суть ограничения не в этом. Я конечно могу переписать с посивольным считыванием, но блин тоже самое будет.
{};
class B
{
B(int c);
};
можно ли явным образом вызвать небазовый конструктор виртуального предка?
A* ptrA=new B(1);
при этом будет вызван базовый ктор А?
Ну нет, я лучше свой исправлю. При том, что твой только с интами работает. На
спасибо большое))))))))
Ограничения в чем?
Во входных данных: никаких, алгоритм будет все считывать до знака переноса строки и сравнивать, только самая большая последовательность не должно превышать INT_MAX
По времени: алгоритм работает за O(n), тут у нас 10^12 символов
По памяти: O(1)
И еще, уважаемый, измените вывод
if (maxLengthLine == 1) cout << "NO" << endl;
\telse
\tcout << "Length: " << maxLengthLine << endl
\t\t << "Start: " << maxFinishPosition - maxLengthLine << endl
\t\t << "Finish: " << maxFinishPosition << endl;
Чтобы выводилось NO, если последовательность из 1 символа.
Ну создай лист, епта.
=====================================================
Books:
[LEVEL1] http://www.math.spbu.ru/user/dlebedin/cpp1.pdf – методичка по VS 2010 C++ СПбГУ. (чтобы перейти к следующей части методички изменить цифру после cpp)
[LEVEL1] http://aco.ifmo.ru/el_books/applied_programming/ - конспекты ИТМО
[LEVEL1] http://www.ozon.ru/context/detail/id/31315281/ - Страуструп
[LEVEL1] http://www.ozon.ru/context/detail/id/5410595/ - Лафоре ООП в С++
[LEVEL1] http://www.ozon.ru/context/detail/id/1498452/ - Шилдт справочник по С++
[LEVEL3] http://www.ozon.ru/context/detail/id/31619787/ - Qt программирование
[LEVEL3] http://www.amazon.com/Object-Oriented-Analysis-Design-Applications-3rd/dp/020189551X/ref=sr_1_1?s=books&ie=UTF8&qid=1431380343&sr=1-1 – ООП Гради Буча
Courses:
[LEVEL1] http://ru.yasno.tv/course/details/programming-start – Введение в язык
[LEVEL1] http://loftblog.ru/category/courses/osnovy-oop-na-s/ – Основы ООП С++
[LEVEL3] https://ru.coursera.org/instructor/~214 – Алгоритмы на C++
[LEVEL1] https://stepic.org/users/31 и https://www.lektorium.tv/speaker/2941 – Курсы Александра Смаля
[LEVEL1] https://stepic.org/users/12 и https://www.lektorium.tv/speaker/2678 – Курсы Александра Куликова
[LEVEL2] https://www.edx.org/bio/deepak-b-phatak – Курсы C++ программирования (минимум C++)
[LEVEL1] http://www.amse.ru/courses/cpp2/ - АСП по C++
=====================================================
YouTube channels:
[LEVEL1] http://www.youtube.com/playlist?list=PL2F919ADECA5E39A6 – С++ с основ
[LEVEL2] http://www.youtube.com/playlist?list=PL2D1942A4688E9D63 – C++ Qt с основ
[LEVEL3] http://www.youtube.com/view_play_list?p=9D558D49CA734A02 – Стэнфордские лекции по программированию (не только C++)
=====================================================
Sites:
[LEVEL1] http://acmp.ru/index.asp?main=tasks – Онлайн контестер с легкими задачами
[LEVEL2] http://www.boost.org/ - Boost библиотеки
[LEVEL2] http://www.amazon.com/gp/bestsellers/books/9045760011/ref=zg_b_bs_9045760011_1 – Популярные книги по C++
[LEVEL1] http://hyperpolyglot.org/ - Сравнивание языков программирования (быстрый переход с другого языка)
[LEVEL1] http://www.cplusplus.com/reference/ - Справочник по всем стандартным библиотекам C++ (можно просто вбивать в поиск запросы)
[LEVEL1] http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 – Конспекты ИТМО
[LEVEL1] https://msdn.microsoft.com/ru-ru/library/3bstk3k5.aspx – MSDN справочник по C++
[LEVEL1] http://stackoverflow.com/questions/tagged/c%2b%2b или http://ru.stackoverflow.com/questions/tagged/c%2b%2b – задаем вопросы по С++
=====================================================
Contests and algorithms:
[LEVEL1] http://acm.timus.ru/ - Архив задач для решения и редкие контесты
[LEVEL2] http://www.spoj.com/ - Архив задач на английском
[LEVEL3] http://www.sanfoundry.com/1000-cpp-algorithms-problems-programming-examples/ - алгоритмы и приемы на C++
[LEVEL2] http://algolist.manual.ru/ - Описание известных алгоритмов (устарел)
[LEVEL2] http://codeforces.com/ - Контесты + новости о больших контестах
[LEVEL2] http://www.topcoder.com/community/events/ - Еще одни контесты
[LEVEL3] https://www.hackerrank.com/calendar – расписание известных контестов
[LEVEL3] https://contest.yandex.ru/contest-list/ – контесты от Яндекса
[LEVEL3] http://cups.mail.ru// – Mail.ru cups (не только спортивное программирование)
[LEVEL4] https://code.google.com/codejam – контесты от google
[LEVEL4] http://icpc.baylor.edu/worldfinals/problems – задачи финалов чемпионата мира по программированию
=====================================================
Forums:
http://rsdn.ru/forum/cpp
http://www.cyberforum.ru/cpp/
http://www.cplusplus.com/forum/
http://www.qtcentre.org/forum.php
https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=c%2B%2B+forum – другие запросы гугла
=====================================================
Books:
[LEVEL1] http://www.math.spbu.ru/user/dlebedin/cpp1.pdf – методичка по VS 2010 C++ СПбГУ. (чтобы перейти к следующей части методички изменить цифру после cpp)
[LEVEL1] http://aco.ifmo.ru/el_books/applied_programming/ - конспекты ИТМО
[LEVEL1] http://www.ozon.ru/context/detail/id/31315281/ - Страуструп
[LEVEL1] http://www.ozon.ru/context/detail/id/5410595/ - Лафоре ООП в С++
[LEVEL1] http://www.ozon.ru/context/detail/id/1498452/ - Шилдт справочник по С++
[LEVEL3] http://www.ozon.ru/context/detail/id/31619787/ - Qt программирование
[LEVEL3] http://www.amazon.com/Object-Oriented-Analysis-Design-Applications-3rd/dp/020189551X/ref=sr_1_1?s=books&ie=UTF8&qid=1431380343&sr=1-1 – ООП Гради Буча
Courses:
[LEVEL1] http://ru.yasno.tv/course/details/programming-start – Введение в язык
[LEVEL1] http://loftblog.ru/category/courses/osnovy-oop-na-s/ – Основы ООП С++
[LEVEL3] https://ru.coursera.org/instructor/~214 – Алгоритмы на C++
[LEVEL1] https://stepic.org/users/31 и https://www.lektorium.tv/speaker/2941 – Курсы Александра Смаля
[LEVEL1] https://stepic.org/users/12 и https://www.lektorium.tv/speaker/2678 – Курсы Александра Куликова
[LEVEL2] https://www.edx.org/bio/deepak-b-phatak – Курсы C++ программирования (минимум C++)
[LEVEL1] http://www.amse.ru/courses/cpp2/ - АСП по C++
=====================================================
YouTube channels:
[LEVEL1] http://www.youtube.com/playlist?list=PL2F919ADECA5E39A6 – С++ с основ
[LEVEL2] http://www.youtube.com/playlist?list=PL2D1942A4688E9D63 – C++ Qt с основ
[LEVEL3] http://www.youtube.com/view_play_list?p=9D558D49CA734A02 – Стэнфордские лекции по программированию (не только C++)
=====================================================
Sites:
[LEVEL1] http://acmp.ru/index.asp?main=tasks – Онлайн контестер с легкими задачами
[LEVEL2] http://www.boost.org/ - Boost библиотеки
[LEVEL2] http://www.amazon.com/gp/bestsellers/books/9045760011/ref=zg_b_bs_9045760011_1 – Популярные книги по C++
[LEVEL1] http://hyperpolyglot.org/ - Сравнивание языков программирования (быстрый переход с другого языка)
[LEVEL1] http://www.cplusplus.com/reference/ - Справочник по всем стандартным библиотекам C++ (можно просто вбивать в поиск запросы)
[LEVEL1] http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 – Конспекты ИТМО
[LEVEL1] https://msdn.microsoft.com/ru-ru/library/3bstk3k5.aspx – MSDN справочник по C++
[LEVEL1] http://stackoverflow.com/questions/tagged/c%2b%2b или http://ru.stackoverflow.com/questions/tagged/c%2b%2b – задаем вопросы по С++
=====================================================
Contests and algorithms:
[LEVEL1] http://acm.timus.ru/ - Архив задач для решения и редкие контесты
[LEVEL2] http://www.spoj.com/ - Архив задач на английском
[LEVEL3] http://www.sanfoundry.com/1000-cpp-algorithms-problems-programming-examples/ - алгоритмы и приемы на C++
[LEVEL2] http://algolist.manual.ru/ - Описание известных алгоритмов (устарел)
[LEVEL2] http://codeforces.com/ - Контесты + новости о больших контестах
[LEVEL2] http://www.topcoder.com/community/events/ - Еще одни контесты
[LEVEL3] https://www.hackerrank.com/calendar – расписание известных контестов
[LEVEL3] https://contest.yandex.ru/contest-list/ – контесты от Яндекса
[LEVEL3] http://cups.mail.ru// – Mail.ru cups (не только спортивное программирование)
[LEVEL4] https://code.google.com/codejam – контесты от google
[LEVEL4] http://icpc.baylor.edu/worldfinals/problems – задачи финалов чемпионата мира по программированию
=====================================================
Forums:
http://rsdn.ru/forum/cpp
http://www.cyberforum.ru/cpp/
http://www.cplusplus.com/forum/
http://www.qtcentre.org/forum.php
https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=c%2B%2B+forum – другие запросы гугла
Часть этого можно даже в шапку кинуть. Только мусор выкинуть надо бы методички, конспекты. охуеть.
>>477151
Только эти на русском.
http://ru.yasno.tv/course/details/programming-start
http://loftblog.ru/category/courses/osnovy-oop-na-s/
https://stepic.org/users/31
https://www.lektorium.tv/speaker/2941
https://stepic.org/users/12
https://www.lektorium.tv/speaker/2678
http://www.amse.ru/courses/cpp2/
http://acmp.ru/index.asp?main=tasks
http://neerc.ifmo.ru/wiki/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
https://msdn.microsoft.com/ru-ru/library/3bstk3k5.aspx
http://ru.stackoverflow.com/questions/tagged/c%2b%2b
http://acm.timus.ru/
http://algolist.manual.ru/
http://codeforces.com/
https://contest.yandex.ru/contest-list/?ncrnd=5199
http://cups.mail.ru//
http://rsdn.ru/forum/cpp
http://www.cyberforum.ru/cpp/
https://www.youtube.com/playlist?list=PLbmlzoDQrXVFC13GjpPrJxl6mzTiX65gs
https://tech-mail.ru/materials/video/
http://www.itmathrepetitor.ru/zadachi-po-programmirovaniyu/
http://e-maxx.ru/algo/
Собрался написать плагин, либо форк vlc с поддержкой предварительного просмотра как на ютубе.
Сейчас смотрю ютуб апи, как это реализовано там, но интересует как это всё перенести в реалии vlc.
Если кто-то имел дело с vlc, напишите какие библиотеки отвечают за интерфейс и собственно захват кадра.
>Borland c++
Выкинь нахуй. Скачай http://sourceforge.net/projects/codeblocks/files/Binaries/13.12/Windows/codeblocks-13.12mingw-setup.exe/download И не ебись, весит 100 МБ.
качаю, мне похуй даже если это вишмастер я его установлю, я уже заебался, спасибо.
Не вишмастер, норм ИДЕ, особенно для студента. Все необходимое из коробки работает, весит немного, не тормозит даже на тостере, воровать не надо.
вишмастер 10из10, установил и он сам за меня написал проект и сдал все экзамены.
Нее, это, увы, не может. Для этого другой вишмастер есть, "студент-фрилансер" называется. Только он платный.
тупой студент
На рутрекере вроде с кряком рабочим, хз.
> Т.е., тебе все равно придется его разжимать и работать с памятью.
Я снова выхожу на связь.
Какой наиболее простой и портабельный способ для (де)компрессии зипа и lzma?
Для первого в прыщах есть zlib, но в других осях с этим как быть? Для последнего, вроде как, есть SDK.
zlib кроссплатформенный
> Собрался написать плагин, либо форк vlc с поддержкой предварительного просмотра как на ютубе.
Бля, джва года жду! Сирсли.
Если запилишь - выкинь куда-нибудь.
А вообще он вроде как юзает ffmpeg/libav, рендеришь фрейм по таймкоду и показываешь.
Есть у меня пакет, который норм компилится, устанавливается и, главное, работает. Пакет этот я собирают так:
export CFLAGS="куча флагов"
export LDFLAGS="куча флагов"
./configure --еще --до --жопы --флагов
make
Концептуальный вопрос: я правильно делаю что export'ы у меня до configure? Configure же смотрит на CFAGS и LDFLAGS? Или ему похуй и export'ы надо прямо перед make ставить? или еще каким-то образом передавать?
Я правильно понимаю что configure генерит какой-то файл, который потом использует make?
Переменные окружения, которые я перед configure объявил, попадают в этот файл или make их напрямую читает?
>Переменные окружения, которые я перед configure объявил, попадают в этот файл
Не попадают. Если ты заэкспортишь, запустишь конфигуре, потом закроешь консоль, и запустишь мэйк без экспорта, то соснешь.
> Я правильно понимаю что configure генерит какой-то файл, который потом использует make?
Makefile, да.
> Переменные окружения, которые я перед configure объявил, попадают в этот файл или make их напрямую читает?
Тут уже точно не скажу. Но конфигуряторы есть разные, некоторые могут хардкодить некоторые флаги в мейкфайл.
make же читает эти переменные и передаёт их дальше компилятору, но тут я тоже могу ошибаться.
Там только на простой решарпер кейген. Увы и ах.
Кейген: http://rghost.net/59503325
Готовые ключи: http://pastebin.com/wJyARAsn
Стырено отсюда: http://forum.ru-board.com/topic.cgi?forum=35&topic=21233
Мудак дохуя?
Я бы тебе отсосал, чувак, ты охуенен.
У крупных она есть, но надо искать пидора, который выдаёт ключи, а он шкерится.
На рутрекере, кейген работает на всех версиях пока. Даже на прыщах.
Мальтиец плиз
Проще было спиратить.
какой проект написать на крестах шобы потом ходить по конторам и пытаться осесть там джуном?
сори, ананас, забыл уточнить
я намылился не в гейдев, а в распределенные-параллельные системки
[code lang="cpp"]
namespace __private_details
{
\ttemplate< typename BaseType, typename DerivedType, typename ... ConstructorArguments >
\tstd::shared_ptr< BaseType > creation_function (ConstructorArguments ... args)
\t{
\t\tstatic_assert (ds:is_base_of < BaseType, DerivedType >::value, "wrong derived type");
\t\treturn std::shared_ptr< BaseType > (static_cast<BaseType > (new DerivedType (std::forward< ConstructorArguments > (args)...)));
\t}
}
template < typename IdType, typename ObjectType, typename ... ConstructorArguments >
class Factory
{
\t//using namespace __private_details;
\ttypedef std::shared_ptr< ObjectType > ( __factory_function_t)(ConstructorArguments...);
public:
\ttemplate< typename DerivedType >
\tvoid register_factory (IdType &&id)
\t{
\t\tthis->__factories[std::forward< IdType > (id)] = &__private_details::creation_function< ObjectType, DerivedType, ConstructorArguments... >;
\t}\t
\t
\tauto create (IdType &&id, ConstructorArguments ... args) -> std::shared_ptr< ObjectType >
\t{
\t\tauto found = this->__factories.find (std::forward< IdType > (id));
\t\t
\t\tif (found != this->__factories.end ())
\t\t\treturn found->second (std::forward< ConstructorArguments > (args)...);
\t\treturn std::shared_ptr< ObjectType > ();
\t}
private:
\t
\tstd::map< IdType, __factory_function_t > __factories;
};
[/code]
Можно ли избежать копирования аргументов, при вызове found->second (...)? Если объявить creation_function вместе с Args &&... args, то будет несоответствие типов
[code lang="cpp"]
namespace __private_details
{
\ttemplate< typename BaseType, typename DerivedType, typename ... ConstructorArguments >
\tstd::shared_ptr< BaseType > creation_function (ConstructorArguments ... args)
\t{
\t\tstatic_assert (ds:is_base_of < BaseType, DerivedType >::value, "wrong derived type");
\t\treturn std::shared_ptr< BaseType > (static_cast<BaseType > (new DerivedType (std::forward< ConstructorArguments > (args)...)));
\t}
}
template < typename IdType, typename ObjectType, typename ... ConstructorArguments >
class Factory
{
\t//using namespace __private_details;
\ttypedef std::shared_ptr< ObjectType > ( __factory_function_t)(ConstructorArguments...);
public:
\ttemplate< typename DerivedType >
\tvoid register_factory (IdType &&id)
\t{
\t\tthis->__factories[std::forward< IdType > (id)] = &__private_details::creation_function< ObjectType, DerivedType, ConstructorArguments... >;
\t}\t
\t
\tauto create (IdType &&id, ConstructorArguments ... args) -> std::shared_ptr< ObjectType >
\t{
\t\tauto found = this->__factories.find (std::forward< IdType > (id));
\t\t
\t\tif (found != this->__factories.end ())
\t\t\treturn found->second (std::forward< ConstructorArguments > (args)...);
\t\treturn std::shared_ptr< ObjectType > ();
\t}
private:
\t
\tstd::map< IdType, __factory_function_t > __factories;
};
[/code]
Можно ли избежать копирования аргументов, при вызове found->second (...)? Если объявить creation_function вместе с Args &&... args, то будет несоответствие типов
сконпелировать и проверить слабо?
>>477457
>>477381
В общем, ребяты, я потестил и результат таков: я все праильно делал. Сначала экспорты, потом конфиг, потом мэйк.
Конфиг действительно читает переменные окружения, добавляет к ним свои параметры и сливает все в config.mk. А make, при наличии config.mk, игнорирует переменные окружения и читает нужные значения из этого файла. Т.е. если делать экспорты не до, а после конфига, до мэйка их содержимое уже не дойдет.
Стесняюсь спросить, это что, абстрактная фабрика?
В чём суть вопроса: изучаю я С++, читаю книги, смотрю видео уроки. Накопилось достаточно теоретических знаний (как мне кажется), но с практикой всё очень плохо.
Суть моего вопроса в следующем: у меня есть задание которое я хочу выполнить сам с минимальной помощью со стороны, но не знаю с какой стороны к нему подойти
Задача заключается в следующем: нужно написать консольное windows приложение которое будет получать на вход два параметра пути к входному(.xlsx) и выходному файлу(выдавать ошибку если значения не верны) и обрабатывать файл.
Как я думаю реализовывать:
0. подключаю <fstream>-для работы с файлами; <ifstream>-для входного файла <оfstream> для выходного;
1. Две строки для параметров входного файла и выходного файлов; (обработка ошибок для входного файла)
2. два объекта по одному для каждого класса ifstream /объект/ (/путь в переменной/) оfstream /объект/ (/путь в переменной/)
...
#include "stdafx.h"
#include <fstream>
using namespace std;
void checkDir (string dirIN)
{
//проверяем входной файл
}
void checkOUTdir (string dirOUT)
{
//проверяем/создаём выходной файл
}
main (){
string dirIN, dirOUT;
cout "Входной файл:";
getline (cin, dirIN)
cout "Выходной файл";
getline(cin, dirOUT);
//Наверное дальше строки не верны, я хотел сказать что ниже по моей задумке должны идти функции работы с самими файлами
ifstream INdir (dirIN)
{
//работаем с файлом
};
ofstream OUTdir (dirOUT)
{
//пишем в файл
};
}
В чём суть вопроса: изучаю я С++, читаю книги, смотрю видео уроки. Накопилось достаточно теоретических знаний (как мне кажется), но с практикой всё очень плохо.
Суть моего вопроса в следующем: у меня есть задание которое я хочу выполнить сам с минимальной помощью со стороны, но не знаю с какой стороны к нему подойти
Задача заключается в следующем: нужно написать консольное windows приложение которое будет получать на вход два параметра пути к входному(.xlsx) и выходному файлу(выдавать ошибку если значения не верны) и обрабатывать файл.
Как я думаю реализовывать:
0. подключаю <fstream>-для работы с файлами; <ifstream>-для входного файла <оfstream> для выходного;
1. Две строки для параметров входного файла и выходного файлов; (обработка ошибок для входного файла)
2. два объекта по одному для каждого класса ifstream /объект/ (/путь в переменной/) оfstream /объект/ (/путь в переменной/)
...
#include "stdafx.h"
#include <fstream>
using namespace std;
void checkDir (string dirIN)
{
//проверяем входной файл
}
void checkOUTdir (string dirOUT)
{
//проверяем/создаём выходной файл
}
main (){
string dirIN, dirOUT;
cout "Входной файл:";
getline (cin, dirIN)
cout "Выходной файл";
getline(cin, dirOUT);
//Наверное дальше строки не верны, я хотел сказать что ниже по моей задумке должны идти функции работы с самими файлами
ifstream INdir (dirIN)
{
//работаем с файлом
};
ofstream OUTdir (dirOUT)
{
//пишем в файл
};
}
>>4/78188
qwt?
Хочу понять как мне сделать консольную прилагу которая на вход получает два файла. Смысл в том что бы инфа из первого файла форматировалась и записывалась во второй.
И тут я прихожу в компанию, которая учит норм студентов бесплатно и берёт самых успешных на работу, а мне говорят: в Беларуси с++ джуны НИНУЖНЫ. Я, конечно подозревал.
Это правда? Не устроиться юниором на крестиках?
Забыл уточнить, что сейчас немного дрочим WINAPI, POSIX, ассемблерные вставки и работку с портами. Сам пишу свою небольшу ОС. Везде С++.
Алексей залогинься!
Ну, бля, ну хуй его знает, ищи стажировки. Говорят, что крестокодеры ещё нужны.
Конечно кресты нинужны, ОС и игры давно пишут на JavaScript, он уже обогнал кресты по производительности в 13.37 раз.
Как там в 1996?
Ну с клавитаурой все понятно,а вот с файлом я сделал вот так:
int file_enter (int mass[4][5]) {
fstream F;
F.open("C:\\Games\\file.txt");
if (F) {
for (int i = 0; i<=3; i++ ) {
for (int j = 0; j<=4; j++) {
F >> mass [j];
}
}
но это работает только если между числами в файле пробелы. А как сделать чтобы посимвольно считывалось и без пробелов?
короче макак не хочет печатать i, ну вы поняли
не работает
да я хз, наверно, вообще задание очень расплывчатое мне кажется
На моём домашнем процессоре последовательная версия ВСЕГДА работает быстрее параллельной примерно на 15-20%, иногда времена практически равны (+-пренебрежимое отклонение)
Код на С++ компилю в GCC под убунтой.
Сегодня закомпилил на компьютере в универе, там был MinGW под Win7 и ВСЁ РАСПАРАЛЛЕЛИЛОСЬ, ускорение в 3-4 раза, в зависимости от числа переменных минимизируемой функции.
Почему такое может быть? Из-за чего? Как настроить свой домашний компилятор, чтобы всё работало правильно?
Под кроватью посмотри.
В настройках твоей IDE. Если конпелируешь из конслои - то давай консольные команды.
g++ $(gsl-config --cflags) "%e.cxx" $(gsl-config --libs) -fopenmp
там флаги для GSL (GNU Scientific Library) и OpenMP
в MinGW собирал так
g++ -Wall -fopenmp !.cxx -o !.exe
в Far Manager
Эти команды передают в gcc опции от gsl-config. Разбирайся, что за опции. Без этого хуй знает как тебе помочь.
Ключи GSL, если он см не используется в коде или их отсутствие ничего не меняют
можешь какой-нибудь инфы дать, где почитать по GCC? а то это пальцем в небо тыкать
Почитай учебники для начала. А потом попробуй поформатировать хотя бы простые текстовые файлы. А то обосрался даже с выводом в консоль, а уже эксели парсить собрался.
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
Крестоны привет. Есть вопрос интересный
есть прога с
int main ( int agrc, char *agrv[])
На вход она получает две строки типа C:\Program Files\text1.txt и C:\Program C:\Program Files\text2.txt
Что мне дальше делать с этими параметрами что бы моя программа открывала файлы эти?
Слепой даун.
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
https://2ch.hk/pr/res/478556.html
У меня проблема со строкой. Пишу вот так:
fstream F;
F.open("C:\\Games\\file.txt");
if (F) {
for (int i = 0; i<=3; i++ ) {
for (int j = 0; j<=4; j++) {
F >> mass [j];
}
}
Работает только если между цифрами есть пробел. Как сделать, чтобы считывалось посимвольно строка без пробелов?
Читай посимвольно (F.get()), цифра (isdigit) - отнимаешь '0' и в массив, не цифра - пропускаешь.
все) разобрался)
Image Image::operator / (short Depth)
{
\tint x = BMInfoHeader.Width, y = BMInfoHeader.Height, temp = 0;
\tBMInfoHeader.BitCount = Depth;
\tint SizeOfPal = 1;
\tfor (int i = 0; i < Depth; i++)
\t\tSizeOfPal = 2 SizeOfPal;
\tBMFileHeader.OffsetBits = sizeof(BITMAPFILEHEADER) + SizeOfPal 4;
\tBMInfoHeader.SizeImage = DepthBMInfoHeader.HeightBMInfoHeader.Width;
\tBMFileHeader.Size = BMFileHeader.OffsetBits + BMInfoHeader.SizeImage;
\tBMInfoHeader.ColorUsed = SizeOfPal;
\tPalette = new RGBTRIPLE[SizeOfPal];
\tBYTE buf = new BYTE[xy];
\tint freeBits = (4 - (BMInfoHeader.WidthBMInfoHeader.BitCount / 8) % 4) % 4;
\t
\tFILE f = fopen("OutputPal.bmp", "wb");
\tfwrite(&BMFileHeader, sizeof(BITMAPFILEHEADER), 1, f);
\tfwrite(&BMInfoHeader, sizeof(BITMAPINFOHEADER), 1, f);
\t
\tif (Depth == 1)
\t{
\t\tfor (int i = 0; i < SizeOfPal; i++)
\t\t{
\t\t\tPalette.Blue = i;
\t\t\tPalette.Green = i;
\t\t\tPalette.Red = i;
\t\t\tfwrite(&Palette, 1, 4, f);
\t\t}
\t\tfor (int i = xy; i != 0; i--)
\t\t{
\t\t\t/\t/
\t\t}
\t\tprintf("Записано в файл OutputPal.bmp c глубиной цвета 1 бит\n\n");
\t}
\tif (Depth == 8)
\t{
\t\tfor (int i = 0; i < SizeOfPal; i++)
\t\t{
\t\t\tPalette.Blue = i;
\t\t\tPalette.Green = i;
\t\t\tPalette.Red = i;
\t\t\tfwrite(&Palette, 1, 4, f);
\t\t}
\t\t
\t\tfor (int i = xy; i != 0; i--)
\t\t\t{
\t\t\t\tbuf = int(0.299Rgbtriple.Red + 0.587Rgbtriple.Green + 0.114Rgbtriple.Blue);
\t\t\t\tfwrite(&buf, 1, sizeof(BYTE), f);
\t\t\t\tif (i % x == 0)
\t\t\t\t\tfwrite(&rgbtEmpty, freeBits, 1, f);
\t\t\t}
\t\tprintf("Записано в файл OutputPal.bmp c глубиной цвета 8 бит\n\n");
\t}
\tif (Depth == 24)
\t\treturn this;
\tfclose(f);
\treturn *this;
}
Image Image::operator / (short Depth)
{
\tint x = BMInfoHeader.Width, y = BMInfoHeader.Height, temp = 0;
\tBMInfoHeader.BitCount = Depth;
\tint SizeOfPal = 1;
\tfor (int i = 0; i < Depth; i++)
\t\tSizeOfPal = 2 SizeOfPal;
\tBMFileHeader.OffsetBits = sizeof(BITMAPFILEHEADER) + SizeOfPal 4;
\tBMInfoHeader.SizeImage = DepthBMInfoHeader.HeightBMInfoHeader.Width;
\tBMFileHeader.Size = BMFileHeader.OffsetBits + BMInfoHeader.SizeImage;
\tBMInfoHeader.ColorUsed = SizeOfPal;
\tPalette = new RGBTRIPLE[SizeOfPal];
\tBYTE buf = new BYTE[xy];
\tint freeBits = (4 - (BMInfoHeader.WidthBMInfoHeader.BitCount / 8) % 4) % 4;
\t
\tFILE f = fopen("OutputPal.bmp", "wb");
\tfwrite(&BMFileHeader, sizeof(BITMAPFILEHEADER), 1, f);
\tfwrite(&BMInfoHeader, sizeof(BITMAPINFOHEADER), 1, f);
\t
\tif (Depth == 1)
\t{
\t\tfor (int i = 0; i < SizeOfPal; i++)
\t\t{
\t\t\tPalette.Blue = i;
\t\t\tPalette.Green = i;
\t\t\tPalette.Red = i;
\t\t\tfwrite(&Palette, 1, 4, f);
\t\t}
\t\tfor (int i = xy; i != 0; i--)
\t\t{
\t\t\t/\t/
\t\t}
\t\tprintf("Записано в файл OutputPal.bmp c глубиной цвета 1 бит\n\n");
\t}
\tif (Depth == 8)
\t{
\t\tfor (int i = 0; i < SizeOfPal; i++)
\t\t{
\t\t\tPalette.Blue = i;
\t\t\tPalette.Green = i;
\t\t\tPalette.Red = i;
\t\t\tfwrite(&Palette, 1, 4, f);
\t\t}
\t\t
\t\tfor (int i = xy; i != 0; i--)
\t\t\t{
\t\t\t\tbuf = int(0.299Rgbtriple.Red + 0.587Rgbtriple.Green + 0.114Rgbtriple.Blue);
\t\t\t\tfwrite(&buf, 1, sizeof(BYTE), f);
\t\t\t\tif (i % x == 0)
\t\t\t\t\tfwrite(&rgbtEmpty, freeBits, 1, f);
\t\t\t}
\t\tprintf("Записано в файл OutputPal.bmp c глубиной цвета 8 бит\n\n");
\t}
\tif (Depth == 24)
\t\treturn this;
\tfclose(f);
\treturn *this;
}
Попортился код при копи-пасте, прикрепляю ссыль: http://www.everfall.com/paste/id.php?6i3yfulmnhix
Три часа уже не могу нагуглить(
пикрандом
Пишу cout<<1234.56789; выводит 1234.57
Как вывести 1234.56789?
#Выбрать из заданного массива отрицательные элементы, отсортировать их по убыванию и внести в другой массив.
Код:#include <iostream>
using namespace std;
int main() {
\tsetlocale(LC_ALL, "Russian");
\tint x[10], z[10], temp;
\tint size = 0;
\tcout << "Введите элементы массива" << endl;
\tfor (int i = 0; i < 10; i++)
\t{
\t\tcout << "[" << i + 1 << "] ";
\t\tcin >> x;
\t}
\tfor (int i = 0; i < 10; i++)
\t{
\t\tif (x < 0){
\t\t\tz[size] = x;
\t\t\tsize++;
\t\t}
\t}
\t//Сортировка одномерного массива
\tfor (int i = 0; i<size; i++)
\t\tfor (int j = i; j<size; j++)
\t\t\tif (z<z[j])
\t\t\t{
\t\t\t\ttemp = z;
\t\t\t\tz = z[j];
\t\t\t\tz[j] = temp;
\t\t\t}
\tcout << "(";
\tfor (int i = 0; i < size; i++){
\t\tcout << z << ",";
\t}
\tcout << ")";
\tsystem("pause");
\treturn 0;
}
#Выбрать из заданного массива отрицательные элементы, отсортировать их по убыванию и внести в другой массив.
Код:#include <iostream>
using namespace std;
int main() {
\tsetlocale(LC_ALL, "Russian");
\tint x[10], z[10], temp;
\tint size = 0;
\tcout << "Введите элементы массива" << endl;
\tfor (int i = 0; i < 10; i++)
\t{
\t\tcout << "[" << i + 1 << "] ";
\t\tcin >> x;
\t}
\tfor (int i = 0; i < 10; i++)
\t{
\t\tif (x < 0){
\t\t\tz[size] = x;
\t\t\tsize++;
\t\t}
\t}
\t//Сортировка одномерного массива
\tfor (int i = 0; i<size; i++)
\t\tfor (int j = i; j<size; j++)
\t\t\tif (z<z[j])
\t\t\t{
\t\t\t\ttemp = z;
\t\t\t\tz = z[j];
\t\t\t\tz[j] = temp;
\t\t\t}
\tcout << "(";
\tfor (int i = 0; i < size; i++){
\t\tcout << z << ",";
\t}
\tcout << ")";
\tsystem("pause");
\treturn 0;
}
у меня есть массив чисел
{ 23, 67, 55, 14, 31, 7, 84, 10}
и есть начальная точка 63 как мне найти ближайшее число из массива в сторону уменьшения(что бы вывело 55)
Суть в том, что дана матрица, надо представить ее в виде вектора строк и отсортировать по кол-ву нечетных элементов. Именно с матрицей я вроде понимаю что и как, но нахуй этот вектор и как с ним работать?
#include <stdlib.h>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS
typedef struct trains
{
int num;
char dest[15];
int time;
int actiontime;
int ticket;
}data;
void add (char);
void edit (char);
void show (char);
void search1 (char);
void search2 (char);
void del (char);
data in(void);
int main(int argc, char argv[])
{
char filename[50];
char menu;
do
{
system("cls");
puts ("1.Add");
puts ("2.Edit");
puts ("3.View");
puts ("4.Info");
puts ("5.Tickets in stock");
puts ("6.Delete");
puts ("7.sort");
puts ("0.Exit");
menu=getchar();
switch(menu)
{
case '1':add(filename);break;
case '2':edit(filename);break;
case '3':show(filename);break;
case '4':search1(filename);break;
case '5':search2(filename);break;
case '6':del(filename);break;
}
}while (menu!='0');
return 0;
}
void add (charfile)
{
FILE f;
data d;
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "ab")) == NULL)
{
puts("Error opening file!");
system("pause");
return ;
}
system("cls");
d=in();
fwrite(&d,sizeof(d),1,f);
fclose(f);
return;
}
void sort (charfile)
{
}
void edit(charfile)
{
FILEf;
data d;
int edit;
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "r+b")) == NULL)
{
puts("Error opening file!");
system("pause");
return ;
}
printf ("Enter number to edit:\n");
scanf ("%d",&edit);
fseek(f, sizeof(d)(edit-1), SEEK_SET);
d=in();
fwrite (&d,sizeof(d),1,f);
fclose(f);
return;
}
void del(char file)
{
FILE f,f2;
data d;
int i, del, p;
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "r+b")) == NULL)
{
puts("Error opening file!");
system("pause");
return ;
}
if ((f2 = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\TEMP.BIN","ab")) == NULL)
{
puts("Error opening file2!");
system("pause");
return ;
}
printf("Enter number to delete:\n");
scanf("%d", &del);
for(i=0;fread(&d,sizeof(d),1,f);i++)
if (i!=(del-1))
fwrite(&d,sizeof(d),1,f2);
fclose(f);
fclose(f2);
remove("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN");
rename ("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\TEMP.BIN","C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN");
return;
}
void show(char file)
{
FILE f;
data d;
int k=0;
char t;
char tY[10] = "Yes";
char tN[10] = "No";
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "rb")) == NULL)
{
puts("Error opening file!");
system("pause");
return;
}
printf("ПЂ Train Destination Departure time (h.) Time to arrival Tickets\n");
while(fread(&d,sizeof(d),1,f))
{
if (d.ticket == 1)
t = tY;
else
t = tN;
printf("%-2d %-12d %-18s %-23d %-13d %-5s\n", ++k, d.num, d.dest, d.time, d.actiontime, t);
}
system ("pause");
fclose(f);
return;
}
data in(void)
{
data d;
int num, time, actiontime, ticket;
fflush(stdin);
puts("Train:");
scanf("%d", &num);
d.num = num;
fflush(stdin);
puts("Destination:");
gets(d.dest);
puts("Departure time:");
scanf("%d", &time);
d.time = time;
fflush(stdin);
puts("Time to arrival:");
scanf("%d", &actiontime);
d.actiontime = actiontime;
fflush(stdin);
puts("Tickets (0 - No, 1 - Yes)");
scanf("%d", &ticket);
d.ticket = ticket;
fflush(stdin);
return d;
}
void search1(char file)
{
FILE f;
data d;
int found = 0, tif, tit;
char xdest[15], ptr;
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "rb")) == NULL)
{
puts("Error opening file!");
system("pause");
return;
}
fflush(stdin);
printf("Destination: ");
gets(xdest);
printf("Time intrerval (from, h.): ");
scanf("%d", &tif);
fflush(stdin);
printf("Time interval (to, h.): ");
scanf("%d", &tit);
fflush(stdin);
printf("Train Departure time\n");
while(fread(&d,sizeof(d),1,f))
if (!strcmp(d.dest, xdest) && d.time <= tit && d.time >= tif)
{
printf("%-15d %-6d\n", d.num, d.time);
found = 1;
}
if (!found)
{
system("cls");
printf("Not found!\n");
system("pause");
}
fclose(f);
system("pause");
return;
}
void search2(char file)
{
FILE f;
data d;
int found = 0, tn;
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "rb")) == NULL)
{
puts("Error opening file!");
system("pause");
return;
}
fflush(stdin);
printf("Train #: ");
scanf("%d", &tn);
fflush(stdin);
while(fread(&d,sizeof(d),1,f))
{
if (d.num == tn && d.ticket == 1)
{
printf("Tickets in stock!\n");
found = 1;
system("pause");
}
}
if (!found)
{
system("cls");
printf("Tickets out of stock\n");
system("pause");
}
fclose(f);
system("pause");
return;
}
#include <stdlib.h>
#include <string.h>
#define _CRT_SECURE_NO_WARNINGS
typedef struct trains
{
int num;
char dest[15];
int time;
int actiontime;
int ticket;
}data;
void add (char);
void edit (char);
void show (char);
void search1 (char);
void search2 (char);
void del (char);
data in(void);
int main(int argc, char argv[])
{
char filename[50];
char menu;
do
{
system("cls");
puts ("1.Add");
puts ("2.Edit");
puts ("3.View");
puts ("4.Info");
puts ("5.Tickets in stock");
puts ("6.Delete");
puts ("7.sort");
puts ("0.Exit");
menu=getchar();
switch(menu)
{
case '1':add(filename);break;
case '2':edit(filename);break;
case '3':show(filename);break;
case '4':search1(filename);break;
case '5':search2(filename);break;
case '6':del(filename);break;
}
}while (menu!='0');
return 0;
}
void add (charfile)
{
FILE f;
data d;
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "ab")) == NULL)
{
puts("Error opening file!");
system("pause");
return ;
}
system("cls");
d=in();
fwrite(&d,sizeof(d),1,f);
fclose(f);
return;
}
void sort (charfile)
{
}
void edit(charfile)
{
FILEf;
data d;
int edit;
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "r+b")) == NULL)
{
puts("Error opening file!");
system("pause");
return ;
}
printf ("Enter number to edit:\n");
scanf ("%d",&edit);
fseek(f, sizeof(d)(edit-1), SEEK_SET);
d=in();
fwrite (&d,sizeof(d),1,f);
fclose(f);
return;
}
void del(char file)
{
FILE f,f2;
data d;
int i, del, p;
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "r+b")) == NULL)
{
puts("Error opening file!");
system("pause");
return ;
}
if ((f2 = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\TEMP.BIN","ab")) == NULL)
{
puts("Error opening file2!");
system("pause");
return ;
}
printf("Enter number to delete:\n");
scanf("%d", &del);
for(i=0;fread(&d,sizeof(d),1,f);i++)
if (i!=(del-1))
fwrite(&d,sizeof(d),1,f2);
fclose(f);
fclose(f2);
remove("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN");
rename ("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\TEMP.BIN","C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN");
return;
}
void show(char file)
{
FILE f;
data d;
int k=0;
char t;
char tY[10] = "Yes";
char tN[10] = "No";
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "rb")) == NULL)
{
puts("Error opening file!");
system("pause");
return;
}
printf("ПЂ Train Destination Departure time (h.) Time to arrival Tickets\n");
while(fread(&d,sizeof(d),1,f))
{
if (d.ticket == 1)
t = tY;
else
t = tN;
printf("%-2d %-12d %-18s %-23d %-13d %-5s\n", ++k, d.num, d.dest, d.time, d.actiontime, t);
}
system ("pause");
fclose(f);
return;
}
data in(void)
{
data d;
int num, time, actiontime, ticket;
fflush(stdin);
puts("Train:");
scanf("%d", &num);
d.num = num;
fflush(stdin);
puts("Destination:");
gets(d.dest);
puts("Departure time:");
scanf("%d", &time);
d.time = time;
fflush(stdin);
puts("Time to arrival:");
scanf("%d", &actiontime);
d.actiontime = actiontime;
fflush(stdin);
puts("Tickets (0 - No, 1 - Yes)");
scanf("%d", &ticket);
d.ticket = ticket;
fflush(stdin);
return d;
}
void search1(char file)
{
FILE f;
data d;
int found = 0, tif, tit;
char xdest[15], ptr;
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "rb")) == NULL)
{
puts("Error opening file!");
system("pause");
return;
}
fflush(stdin);
printf("Destination: ");
gets(xdest);
printf("Time intrerval (from, h.): ");
scanf("%d", &tif);
fflush(stdin);
printf("Time interval (to, h.): ");
scanf("%d", &tit);
fflush(stdin);
printf("Train Departure time\n");
while(fread(&d,sizeof(d),1,f))
if (!strcmp(d.dest, xdest) && d.time <= tit && d.time >= tif)
{
printf("%-15d %-6d\n", d.num, d.time);
found = 1;
}
if (!found)
{
system("cls");
printf("Not found!\n");
system("pause");
}
fclose(f);
system("pause");
return;
}
void search2(char file)
{
FILE f;
data d;
int found = 0, tn;
system("cls");
if ((f = fopen("C:\\Users\\Bel313\\Desktop\\програмирование\\test 18\\LAB.BIN", "rb")) == NULL)
{
puts("Error opening file!");
system("pause");
return;
}
fflush(stdin);
printf("Train #: ");
scanf("%d", &tn);
fflush(stdin);
while(fread(&d,sizeof(d),1,f))
{
if (d.num == tn && d.ticket == 1)
{
printf("Tickets in stock!\n");
found = 1;
system("pause");
}
}
if (!found)
{
system("cls");
printf("Tickets out of stock\n");
system("pause");
}
fclose(f);
system("pause");
return;
}
что -то типа int* ptr=new int(10); только без new
и нужно ли? Догадываюсь что может память не освободиться когда данные на которые указывает указатель стали не нужны, так ли это?
Где можно прочитать про дискретизацию и квантование изображений в Qt? (В Шлее не нашёл нихуя, гугл молчит).
selectionModel()->select() тоже пробовал, не помогает. Ткните меня туда, где написано как это сделать. С меня нефть.
Хуйню нагуглил, которую я тоже находил. Но и на том спасибо.
Вы видите копию треда, сохраненную 12 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.