Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.Пожалуйста, пользуйтесь https://ideone.com/ или https://pastebin.com/ для вставки кода, если он длиной больше нескольких строк или содержит [i] или ∗.Что читать:- Brian Kernighan, Dennis Ritchie "The C Programming Language": http://www.cypress.com/file/56651/download- Stephen Prata "C Primer Plus, 6th Edition" (2014): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Читать после K&R или до.- Zed A. Shaw "Learn C the Hard Way" (2015): годное пособие для гуманитариев для гуманитариев!- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf- Стандарт ISO/IEC 9899:1999 (он же C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт)- Стандарт ISO/IEC 9899:2011 (он же C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)- man/Dash/zealdocsЧем компилировать:- Очевидный GCC.- clang: оче годно, батя рекомендует.- Intel C++ Compiler: оптимизации, тысячи их.- Visual Studio 2017 Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне "есть все, что тебе понадобится в реальном проекте плюс кривая библиотека". Анализатор кода в комплекте.- Pelles C (шиндоуз онли): поучиться, вкатиться в C11 (стандарт полностью реализован, имеются в том числе threads.h и прочие stdatomic.h), но количество багов в оптимизаторе и редкие апдейты напрочь отбивают желание собирать этим что-то сколько-нибудь серьезное.- TCC: очень маленький компилятор с багами и поддержкой C99. С ключом -run умеет компилировать код в память и запускать его, что позволяет писать скрипты прямо на сишечке.Что еще почитать:http://c-faq.com/FAQ из comp.lang.c. Древний, но все еще актуален.Samuel P. Harbison, Guy L. Steele Jr. "C: A Reference Manual, 5th Edition" (2002)Ебаный пересказ стандартов C89 и C99 (включая стандартную библиотеку). Для не осиливающих стандарт в оригинале. Читать в качестве подготовки к собеседованиям (есть задачник с ответами) и для ознакомления с масштабами пиздеца перед написанием своего парсера/компилера.Peter Van Der Linden "Expert C Programming. Deep C Secrets" (1994)"Си: грязные истории". Смехуечки, немного объяснений, чем обусловлены особенности языка, всем известные подводные камни кто там ругал косяки в JS? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management" (2013) - почитать, вкатиться в указатели.Ben Klemens "21st Century C: C Tips from the New School" (2012)Paul Deitel, Harvey Deitel "C for Programmers with an Introduction to C11" (2013)Stephen G. Koch@n "Programming in C (3rd Edition или 4th Edition, если найдется)" (2014)MISRA Ltd. "Guidelines for the Use of the C Language in Critical Systems" (2013)Набор рекомендаций по написанию надежного кода на C (промышленный стандарт). Читать - однозначно, следовать - вдумчиво и без фанатизма. Также можно посмотреть https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+StandardЕще более длинный список: http://www.iso-9899.info/wiki/Books#Learning_CОнлайн-утилиты:- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.Прошлые треды:- №36: https://arhivach.ng/thread/407257/- №37: https://arhivach.ng/thread/414099/- №38: https://arhivach.ng/thread/419611/
>>1339821Нет, не правда. Стрелочка лишь сахарок для второго выражения. Это если ты не ошибся тредом. У соседей по обыкновению все непросто.
>>1339857Похоже, ошибся тредом ты. Это у соседей явно прописано, что E1->E2 это эквивалент (*(E1)).E2, так что всё просто.А вот в C со вторым может быть UB, когда с первым его может не быть. Забавно.
>>1339858> А вот в C со вторым может быть UB, когда с первым его может не быть.Пруф из стандарта или хотя бы пример будет?
>>1339861https://pastebin.com/ARxKm18y ну вот, например 8-я и 9-я строкаХоть такой каст указателей и доступ к члену несуществующей структуры и сомнителен, вроде считается что так можно.Однако, в 9-й строке, `°ps` это lvalue а про него сказаноhttp://port70.net/~nsz/c/c11/n1570.html#6.3.2.1> An lvalue is an expression (with an object type other than void) that potentially designates an object; if an lvalue does not designate an object when it is evaluated, the behavior is undefined.объекта типа struct S нет, значит `°ps` — это UB?
>>1339866> доступ к члену несуществующей структуры и сомнителенПо-хорошему так нельзя, потому что типы разные.> объекта типа struct S нетТак чего ж ты кастил указатель, если объекта нет? Ты определись, либо кастить можно, и объект есть, либо у тебя все сломалось еще при касте.
>>1339874То есть, нельзя кастить, если объекта нет?Тогда, например, integer aliasing (разрешение читать int через lvalue типа unsigned int и т.д.) теряет всякий смысл, т.к. по-твоему нельзя кастить указатель на int к указателю на unsigned int.
>>1339880> integer aliasingЭто разрешено явно до сих пор не понимаю, нахуя, как и чтение байтиков инта через указатель на char. В остальных случаях тебе нужны совместимые типы. Структура с интом несовместима. На самом деле в моем мире бегают розовые пони, помахивая -fno-strict-aliasing, поэтому у меня нет никакого UB при чтении интов через структуру. Чего и тебе желаю.
>>1339890> Это разрешено явно до сих пор не понимаю, нахуя, как и чтение байтиков инта через указатель на char. В остальных случаях тебе нужны совместимые типы.Лазать через структуру явно разрешено в том же списке http://port70.net/~nsz/c/c11/n1570.html#6.5p7> An object shall have its stored value accessed only by an lvalue expression that has one of the following types:> …> — a type that is the signed or unsigned type corresponding to the effective type of the object, > …> — an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or > — a character type.
>>1339893> an aggregate or union type that includes one of the aforementioned types among its members (including, recursively, a member of a subaggregate or contained union), or Там просто формулировка говно, смотри сноску, это про алиасинг. Имеется в виду, что int будет алиаситься не только с char или каким-нибудь unsigned интом, но и со структурой, у которой один из членов int или совместим с ней.Классика. Это UB:void test(float ∗a, int ∗b) {∗a = 1.0;printf("%g\n", ∗a);∗b = 0;printf("%g\n", ∗a); // Компилятор может не перечитывать a.}float foo;test(&foo, (int ∗) &foo)Это нет:struct s { float x; };void test(float ∗a, struct s ∗b) {∗a = 1.0;printf("%g\n", ∗a);b->x = 0.0;printf("%g\n", ∗a); // А вот тут компилятору придется перечитывать a.}float foo;struct s bar;test(&foo, &bar);
>>1339904Ну так и почему кастить к указателю на unsigned int можно исходя из тех правил, хотя объекта типа unsigned int нет, а кастить к указателю на структуру нельзя?
>>1339905> почему кастить к указателю на unsigned int можно исходя из тех правилЯ уже говорил, что не знаю, почему сделано исключение для signed/unsigned. Вот с char все понятно, это в свое время завезли для memcpy и прочих fwrite. Какие проблемы может решать чтение signed инта через unsigned, я не понимаю. По мне, оно только ломает alias analysis еще больше.
>>1339911>Какие проблемы может решать чтение signed инта через unsigned, я не понимаю.ПРоблему совместимости со старым кодом
>>1339915> совместимости со старым кодомНеужели так много говнокода, в котором путаница со знаком у указателей? По мне, так кода, который ломает strict aliasing - гораздо большая куча, которая к тому же продолжает расти. Вон даже целый линукс есть. Но что-то никто не торопится убирать strict aliasing. Зато убрали gets(), убрали олдскульный стиль аргументов у функций, где же тут совместимость?
>>1339904Твой код не демонстрирует доступ через aggregate or union type, т.к. b->x имеет тип float.Доступ через aggregate or union type это присваивание структур.
Нужно ли исправлять ВСЕ warning'и? Просто мне кажется, все исправить не выйдет, если я хочу сделать то, что я хочу, хотя это вроде как логично...
Как понять это ?Выражения типа a компилятор заменяет на ☆(a+b), так как выражение симметрично, то с точки зрения компилятора следующие выражения идентичны:array и i[array], так как будет заменены одинаково: ☆(array+i);=====зачем вообще понадобиться может писать i[array]?
>>1340249Потроллить можно.Незачем, это следствие ассоциативности арифметики указателей, такой небаг языка
>>1340043Неисправляемый ворнинг лучше подавить, чтобы при компиляции новые ворнинги не потерялись в куче старых
>>1339949Ну окей, ∗b = (struct s) { 0.0 }; доволен?>>1340043> Просто мне кажется, все исправить не выйдетА ты постарайся. Можно писать даже для шланга с его -Weverything.>>1340258> Неисправляемый ворнинг лучше подавитьЕсли уж совсем никак нельзя по-другому, то да, стоит отключить, но лучше локально (#pragma GCC diagnostic push, #pragma GCC diagnostic ignored "-Wshootingyourselfinthefoot", #pragma GCC diagnostic pop или аналоги). Иначе можно проебать реальную проблему в том же файле.
Как прочитать размер аллоцированого чанка? Везде вроде пишут, что предшествующий size_t хранит размер. Пытался по всякому прочитать p[-i] память, но там вроде чёто-то нето.
>>1340747Спасибо) но это для Линукса. Я как понял там у Винды всё по другому. Есть функция _msize, но мне интересно как она устроена.
>>1340756Выделяй степень двойки, храни размер сам, не лезь не в свое дело. Ты ведь понимаешь, что оно зависит от реализации - сегодня так, а завтра сломалось?> у Винды всё по другомуУ какой винды? Какой компилятор? Какая версия рантайма? Например, если линковаться с MSVCRT, то перед блоком будет указатель на структуру с информацией.
>>1340756>>1341064Мимокрок на линии.Читаю Game Engine Black Book: Wolfenstein 3D, ну вот прям от всей души рекомендую.Хитрые изъебы с памятью в том числе весьма интересны. Я просто дохера часов убил в свое время на эту игрулю, объяснение внутренностей весьма доставляет.
>>1341259>у тебя бесконечная память с нулевой латенси и бесконечный процНу бля, товарищь Тюринг, я больше не хочу с вами ебаться в жопу.Давай примеры и обоснования, епте.
>>1341220Не помню уже, насколько я знаю прямо на сайте у автора можно скачать pdf.Если нет, то может быть здесь:http://mirknig.su/knigi/programming/188694-game-engine-black-book-wolfenstein-3d.html
>>1341269>а элегантноену так это другое, инженеры пишущие и оптимизирующие код и смузихлебы с фреймворками
>this book has only bit of text and plenty of drawings attempting to describe in great detail the Wolfenstein 3D game engine and its hardware, the IBM PC with an Intel 386 CPU and a VGA graphic card.Автор маладца, сам Ромеро рецензировал. Я кинул ему 20 баксов, просто за слезы ностальгии.
>>1341274>инженеры пишущие и оптимизирующие код Инженерам на тот момент было около 23х лет, мне почти в два раза больше, чемпион по проебыванию жизни впустую.
Кодю на си уже долгое время, захотелось узнать какой стэк нужно знать чтобы на работу устроиться. Можете подсказать?
>>1341273жаль, что описанные в книге подходы устарели и в современном байтоебстве и оптимизоне кододрочерство, алгоритмы и безумные асмовые вставки уступили место датадрочерству и превращению структур данных в write-only пиздец (кококо микроархитектурка порешала). И вот нихуя не понимаю, зачем они при этом на крестах пишут процедурный код.Степень происходящего пиздеца в современном ёбастрое можно оценить в гитхабе:https://github.com/CRYTEK/CRYENGINE/tree/release/CodeСравнить с:https://github.com/id-Software/Quake-III-Arena
>>1341620>датадрочерству Что ты под этим подразумеваешь?>write-only пиздецА в чем смысл write-only структур??
>>1341675Это откуда? Про вольфенштейн? Сейчас маллоки достаточно крутые, чтобы не пилить ничего своего (кроме, разве что, пулов объектов), но в 90х были все описанные проблемы.
>>1341857На деле хотелось бы изучить программирование драйверов под Windows 9x 7, 8.1, 10 (насколько я знаю WDK windows 10 един для них). Меня интересует программирование драйвера фильтров.
Привет уважаемые.Я осмелюсь предположить, что некоторая часть присутствующих довольно глубоко знакома с Lisp'ом.Я прав?Отзовитесь.
Лиспотред либо отсутствует, либо умер давно.Скоро заканчиваю читать прату. По совпадению появится еще немного свободного времени. Хочу в сторону лиспа двигаться. Очень нравится парадигма.Пробовал Haskell, но несмотря на то, что не так уж и сложно, в целом, не зашло.
>>1341794>Это откуда? Про вольфенштейн? Сейчас маллоки достаточно крутые, чтобы не пилить ничего своего (кроме, разве что, пулов объектов), но в 90х были все описанные проблемы. В наше время кастомные аллокаторы поверх выделенного штатным тоже используются но по другой причине (сосноли соснули) и всего двух простейших типов - stack allocator когда коридорное кинцо, очень легко выделять и прибивать сразу весь уровень/этапы и pool allocator используют когда кинцо с опенворлдом и ГТА-подобное и в процессе движения камеры/персонажа мир постоянно загружается/выгружается. В таком случае домики и пешеходы квадратно гнездовым методом впихиваются в чанки стандартных размеров.
>>1341999для мелкой же бойлерплейтухи применяется обычный маллок или аналогично работающая велосипедная версия.
>>1341794apr апача со своими аллокаторами динамической памяти, энжинх тоже..это к примеру, не для срача
>>1342011Я разве сказал, что наличие качественного системного аллокатора кого-то останавливает от написания велосипедов?
>>1341939Попробуй в сторону clojure, хотя бы что-то практичное будет. Из функциональщины в проде используется только erlang/elixir (по сути одно и тоже, синтаксис просто разный, если не углубляться), scala (сидит на двух стулах) и clojure какой-нибудь. Поэтому можешь попробовать что-то из этого, но сразу скажу, что будет очень непривычно, по крайней мере, со мной это было так. Я от эрланга первую неделю ахуевал нехуйски.
>>1342169конечно, читал, никогда не советую книги которые сам до этого не прочиталплюс еще в том, что даже последние издания есть на русском - темы, которые там затрагиваются, и так сложные, если их еще и на английском читать, то мозг вспухнет
>>1342165да зачем тебе читать то, глянь как в библиотеках это сделанов той же apr, которую выше упоминал
>>1342344>Есть же сикп-тред и кложетред.ЛОЛ, их тоже уже нет. Судя по всему, либо вопросов нет, либо у специалистов такая дикая востребованность, что нет времени здесь сидеть.
>>1342362>А CL уже все?Уже все.>>1342361Он есть где-то на дне, поищи получше, да откроется он тебе.>>1342370Возможно, но не вижу смысла кому-то его использовать в проде.
>>1342398Какой? У меня был знакомый, который этим зарабатывал, но он, когда ходил как-то странно подпрыгивал, махал руками, из еды ел только печеночные паштеты и яблоки. Он сторчался.
>>1342361>ЛОЛ, их тоже уже нетПо-моему ты просто не умеешь пользоваться двачем.>что нет времени здесь сидетьЗдесь сидят в основном школьники\студенты, мужики скорее иногда потроллить заходят.>>1342405Ты перепутал, это был коммон-лишпер (еще в пидорском пиджачке, розовой футболке и с противным носом, да?). Хаскеллисты за здоровый образ жизни! Только штанга, только хардкор.
>>1342413>(еще в пидорском пиджачке, розовой футболке и с противным носом, да?)Лол, почти угадал, носил постоянно старый рваный оранжевый пиджак, но на лиспе особо не кодил, только на КЛОЖУР.
>>1342425Так кложур - это же и есть лисп. То есть он был кложуристом, но зарабатывал кодом на хаскеле? Чет ты запизделся походу, дружище.
>>1342413> основном школьники\студенты, мужики скорее иногда потроллить заходятА где серьезные перцы сидят?
>>1342447Хакерньюс\реддит\слак\ирц?>>1342499Форт - для лохов, правильные пацаны выбирают Фактор!мимославик
>>1342430Он оба языка использовал в работе, как-будто ты сам подобное не делаешь. Каждый программист с несколькими языками работает, за редким исключением в виде каких-нибудь дедов.
>>1342452>или блекЧто за блек?>драйвераИх типов и подтипов дохуя, нужно во всем разбираться?>>1342502>Форт - для лохов, правильные пацаны выбирают Фактор!Да одно и тоже по сути. У меня для форта вроде процессор завалялся, может стоит вспомнить старину.>>1342499Язык интересный, поможет мышление развить. Бывает быстрее сишки!111 Вообщем, попробуй, но дальше чем просто увлечение - это вряд ли уедет.
int &x3 = ☆ (int☆) malloc (sizeof (int));Что запишет эта строчка в х3?Знаю ,что маллок возвращает адрес на массив, но там еще одна звезда появляется и что выходит? х3 хранит адрес адреса этого массива?
>>1342757Напиши это кодом где-нибудь и прикрепи картинкой, непонятно, немного, что в объявлении переменной делает амперсанд, или это миссклик?
>>1342765Это из си++, там есть такое дело.Ну представь что амперсанда нет, (получится си чистый) и по рассуждаем. Что будет в переменной х3
Gss, объявляю в разных файлах две статические глобальные переменные с одинаковым именем и возникает конфликт имён, что я делаю не так?
>>1342775Да, это так работает? Блин, а я хотел иметь короткие имена для читаемости, придётся дефайнами.
>>1342769>>1342766Если это плюсы то видимо это ссылка.В общем, ты выделил память, потом разыменовал указатель, получил какое-то значение, то есть мусор, и приравнял ссылке это число, не знаю точно, как работают ссылки, поэтому не могу сказать точно, что в итоге это даст.
>>1342821Сделаю лишь предположение, что присваивать ссылке не переменную, а конкретное значение это UB.
>>1342832Что будет в переменной зависит от компилятора. В случае gcc там скорее всего будет 0. У msvc не знаю.
>>1342772extern?>>1342769Что за редактор и тема?>>1342840Наверное он имел ввиду выделенный в динамической памяти.>>1342715То есть специалист по malware? Это в сторону ассемблера, дизасма смотреть надо, наверное.
Есть ли онлайн курсы по С типо кодакадеми? Чтобы прямо в браузере давали задание и можно было там же его сделать?
>>1342395>>1342370>>1342362Смысла в этой эзотерике сейчас мало, по причине того, что практически все нужные в реальной разработке фичи уже включены в стандартные яп.После сишечки упарывай плюсы там, джаву, там есть все, что тебе может понадобиться из функциональщины.
>>1342858Забыл добавить.Если так уж хочется необычного, посмотри на F#. Не исключено что скоро понадобится.
>>1342858>плюсы там, джаву, там есть все, что тебе может понадобиться из функциональщины. Зачем ты раздаешь свои охуенные советы, если сам нихуяшеньки не шаришь?>>1342864F# давно не взлетел, сдох и никому не нужен, привет. Леночка, залогинься.
>>1342899f# и не собирался взлетать, подыхать и быть кому то нужнымэто просто еще одно добавление к ml-семейству на хорошей платформеи всеочень полезный язык для расширения горизонтов
>>1342904и интересныйпланирую к старости начать пописывать что-нибудь на ml-семействе, живя в деревне и сдавая квартрки
>>1342904Собирался, но не сложилось.>это просто еще одно добавление к ml-семейству на хорошей платформеА, так ты про ризон?>очень полезный язык для расширения горизонтовИли про скалу?..
>>1342165>Где можно про это почитать что-нибудь? Вообще не разбираюсь в pool stack allocator'ах. Вот статья, правда про кресты.https://www.gamedev.net/articles/programming/general-and-gameplay-programming/c-custom-memory-allocation-r3010/Если про зачем это нужно то тут 3 причины:1) У консолей ограниченная память и без свопа. Чтобы делать ёбу им приходится экономить, а так как еба как правило кросплатформенная, то на пеку переносятся все те же подходы.2) Как упоминается в статье - частичное избегание стрельбы по ногам с учетом предметной области путем ограничения функциональности аллокаторов. 3) Скорость работы. В тесной связке с файловым движком приобретает большой смысл в опенворлд играх, когда содержимое огромной карты (превышающее размер доступной оперативы в несколько десятков раз) необходимо постоянно кусками прогонять через ОЗУ, в идеале избегая видимых недогрузов и подгрузок.
Собираюсь изучить программирование под unix системы, но в данный момент установить на диск (или дуалбут) linuxbsd не могу, поэтому спрашиваю ответы насчет возможности изучать программирование под unix на шиндовс. Cygwin подойдет? Или надо поставить систему на флешку (не live cd, а именно поставить), or виртуалку с голой консолью (от чего-то тяжелее голой консоли на виртуализации, моя виртуалкоробка улетает к праотцам).
>>1343238>У консолей ограниченная память и без свопаА чем это обусловлено? Что за у них особенности в архитектуре, что затрудняет реализацию свопа?
>>1343492у меня старенький core2duo, 4 гига оперативы, хост - 10я виндана vmware workstation - debian, i3, консоль и vim, кодить можно без проблем, браузер и pdf-viever так же запускаю в винтуалке чтобы на хост не переключатсямогу порекомендовать сделать примерно так же как у меняудачи
>>1343497Спасибо за совет, задумывался как раз над тайлами. А в vim каково кодить? Можно настроить кошерный автокомплит, подсветку ошибок и прочие радости зажравшихся? Насколько долго учиться кодить в этом, чтобы не сидеть неделю за манами?
На чем на Си можно относительно быстро накидать оконное приложение для Винды? WinAPI кажется слишком низкоуровневым.
>>1343502есть альтернативный подход к кодингу в виме и в юниксах - в редакторе ты пишешь кода все остальное делаешь в командной строке и соответствующими утилитами
>>1343523Не могу найти, где для MinGW, собственно, скачать GTK2. Под MSYS2 не вариант, винапи подергать таки надо. Или всякие юниксовые аналоги "получить список файлов в директории" заведутся?
>>1343492VirtualBox (можно взять старую версию, которая без hardening, она гораздо быстрее стартует), разрабатывать в винде, директорию с исходниками расшарить в виртуалку, компилировать и запускать в линуксе. Виртуалку можно запускать в headless режиме, чтобы не мешалась, подключаться к ней по SSH.
>>1343552Странно, просто по первой ссылке качаешь GTK и подрубаешь либы вместе с хэдерами, можешь это в студии сделать (только поставь компилировать как сишный код). А вообще по идее msys тоже думаю, что подойдет, но проще будет первый вариант. Также если тебе не критично плюсоватость, то есть Qt, там быстро-легко интерфейс накидай и уже функционалом займись.
Как сделать приложение под линукс на сишке? Т.е. можно было бы выбрать гуй это или в командной строке.Также чтобы это можно было установить как пакет. Не совсем понимаю как это должно устанавливаться, походу через make && make install.
>>1344070То есть тебе интересно как оформить приложение в .deb(-ВСТАВЬ НАЗВАНИЕ СВОЕГО ЛУЧШЕГО ДИСТРА) архив? В интернете есть масса информации по этому поводу, думаю, нам тут нет смысла это рассказывать. Не из жадности так говорю, а из здравой рациональности.
>>1339788 (OP)Товарищи, помогите, пожалуйста, с регулярными выражениями (а именно - с библиотекой regex.h)Надо из строки вычленить даты форма HH:MM и вывести. Регулярное выражение я составил и протестил, а вот с реализацией через regex.h - проблемы... Не подскажете, что я делаю не так?https://ideone.com/Op2sZI
>>1344315Суть я понял. Типа искать первое встречное совпадение, после чего смещать указатель на конец этого совпадения, и по новой.Но зачем тогда нужен параметр nmatch в regexec?int regexec(const regex_t preg, const char string, size_t nmatch, regmatch_t pmatch[], int eflags);Бывают случаи, когда nmatch > 1?
>>1344337Оно нужно, когда ты хочешь помимо (или вместо) куска текста, соответствующего всему регулярному выражению, доставать части в скобках.Первый regmatch соответствует всему выражению, каждый следующий — подвыражениям в соответствующих скобках, в порядке появления открывающих скобок.У тебя там 4 пары скобок + регулярное выражение целиком, итого 5 значений.19:36 соответствует выражению целиком.Первое 19 соответствует всему подвыражению (([0-1][0-9])|(2[0-3])) так как подходит под первую часть условия "или" внутри него.Второе 19 соответствует просто ([0-1][0-9]).Далее выводится пустое место, потому что в общем тексте совпадения "19:36" подвыражению (2[0-3]) ничего не соответствует.И наконец идет 36, соответствующее последней паре скобок ([0-5][0-9]).Таким образом нужное количество regmatch'ей в массиве зависит от того, сколько пар скобок тебе нужно анализировать. Если тебе нужно только все совпадение целиком, то можно обойтись без массива.
еси я пишу:char ☆ baz = malloc(10);то нолик(\0) автоматически ставится вконце массива baz?если нет, то как мне вставлять нолик вконец?
>>1344455malloc просто выделяет динамическую память и всё. А ноль должен стоять не в конце памяти, а в конце строки(то-есть после нуля может быть ещё доступная память)
>>1344464Во-первых есть стандартные функции работы со строками, во-вторых пиши остальное сам. Что тебе конкретно то нужно, вопросы совсем новичковские, почитал бы сперва по сайтикам.
Есть большая структурка, в ней элементы различных типов. Надо заполнить ее из файла, там key = value, ну и скобки иногда. Парсинг-то я сделал, но как по человечески ее заполнить? Пока у меня только тонна строк типа if(!strcmp(key,...
>>1344521А, вот, пришла идейка накостылить hashmap (или как оно там называется?) для нужных мне типов данных и сгруппировать поля в них. Насколько плохая идея?
Правильное предсказание ветвления вообще замедляет процесс? Допустим если главном в цикле только единожды срабатывает условие. Я обернул его в макрос if(__builtin_expect(!!(x), 0)), будет ли комп после первой ошибки пролетать его не замедляясь?
I need to create a converter from DJVU to PDF for linux (ubuntu). What do i need to know for this project? Which way to go to solve this?
>>1344665Linux or Windows, this is not important in this question. You must:1) Read about DJVU format documentation2) Read about PDF format documentation3) ???4) ProfitSosi huj kstati
>>1344581> Правильное предсказание ветвления вообще замедляет процессПравильное предсказание бесплатное. Неправильное (не важно, хинт, или процессор сам предсказывал) - десятки тактов.>>1344665Ty zaebeshsja. PDF dovol'no complicated shit.
Аноны, а как вообще портить код на си? Вот я написал на винде, компанул. Получил экзешник. А вдруг я хочу перенести прогу на линукс?
>>1344809Ну вот на винде ты использовал Windows API. Ты #ifdef-аешь функции, где ты их использовал и пишешь аналогичные реализации с POSIX-функциями и линуксовыми либами. Рано или поздно в твоем коде сама по себе выделится прослойка, которая общается с ОС, тогда ты выделишь ее в отдельный файл или даже либу, а #ifdef-ы снесешь.Если же ты Windows API не пользовался, а обошелся стандартной библиотекой или уже кроссплатформенными либами, ты просто делаешь cc file.c -lsdelatzaebis -lanotherlibrary, все собирается и даже работает, если в твоем коде нет ошибок.
>>1339788 (OP)По-прежнему Изучаю регулярные выражения.Пытаюсь вычленить из текста url-ссылки. Но чё-то ссылки вообще не ищутся((9(https://pastebin.com/F2mBusEVМожет кто подсказать, в чём проблема?Регулярное выражение тестил здесь: https://regex101.com/ - всё работает вроде как
>>1344850Во-первых, чтобы вставить в сишную строку символ \ надо писать его два раза подряд: \\.Во-вторых, posix'ные регулярные выражения не поддерживают некоторые штуки типа \d, \w и тому подобного, и вместо этого нужно писать [[:digit:]], [[:alnum:]] и всякое такое.В итоге должно получиться что-то вроде этого:"([[:alpha:]]+://)?(www\\.)?([[:alnum:]]+\\.)+[[:alnum:]]+(:[[:digit:]]+)?(/|(/[[:alnum:]]+)+\\.[[:alnum:]]+)?"
>>1344972Правильно буит "Danke schön". А если ö на клаве нет, то пишут "Danke schoen".Ибо schon и schön - совсем разные слова. Глаза режет.
Поступила в школу 21. Через месяц будет сложное изучение С.Дайте интересных занятий для проверки своих скиллов. Хочу утереть двачеров, которые говорят, что тянки не могут в программирование.
>>1345442Занятий или заданий? Задания в гуглокартинках по запросу warosu programming challenges, занятия CS50 в гугле и книги из шапки.> тянки не могут в программирование> занятий для проверки скилловДа они даже в русский язык не могут.
>>1345529Добавь после ифа ещё один иф, который печатает "только натуральныеы", если 'n' окажется меньше 1. Либо смени, чтобы if(n>1)... else printf "только натуральныеы" А вообще это обычная рекурсия. Функция вызывает саму себя, понижая каждый раз 'a', прибавля 'n' к промежуточной переменной, которую вернёт когда все рекурсивные вызовы функций завершатся и самая первая функция вызвавшая рекурсию вернёт результат промежуточных вычислений.
>>1345542Это условие окончания рекурсии, типо a умножить на 1 = а.Распиши как эта функция будет работать хотя бы при н = 3, и поймёшь что к чему.
>>1345546>Распиши как эта функция будет работать хотя бы при н = 3Я пробую, нихуя не понятно всё равно
>>1345549Если хочешь хорошо разобраться с рекурсией, поработай с бинарными деревьями, хотя я думаю тебе рановато ещё.
>>1345549В конкретно это случае, давай я распишу.3 умножить на а = 2 умножить на а + а = 1 умножить на а + а + а ==Теперь мы попадаем в наше условия окончания рекурсии, что а на 1 это а, и подставляем.== а + а + а.Надеюсь поймёшь.
>>1345556а бляьб... смысл в том чтобы каждый раз а у нас было. спасибо аноны, буду ебать бинарные дервья наверно.
>>1345556>3 умножить на а = 2 умножить на а + а = 1 умножить на а + а + а ==блеть ты гений, где работаешь, расскажи о себе. вышка есть?
>>1345563Я работаю системным девом по факту, пишу драйвер под линукс.Вышки ещё нет, третий курс пока что.>>1345566Ну немного балуюсь питоном, ещё на работе всякие баш-скрипты пишу и CI на ямле пилил.В принципе плюсы я тоже более менее знаю, но на работе применять их негде, т.к. в ядро не примут драйвер написанный на плюсах, хех.20 дал если что.
>>1345442Я двачер, который не прошел бассейн, зачем так грубо про нас..?Могу только дать совет учить и понимать смысл, а не гнаться за очками. Потому что экзамены важнее. Не копипасти чужой код, даже если в жопе рейтинга. Да и еще, они смотрят на прогрессию, если ты получил 3 лвл, а экзамены пишешь на 0, то это тревожный звоночек. Лучше иметь 1 лвл, но сдать все экзы на 30-60 баловИ ты уже проявляешь не самостоятельность, когда пишешь тут такие просьбы. А могла бы тыщу сайтов загуглить сама (в шк этот навык гугления понадобится) И желательно на инглише гуглить тоже.И вообще я это все рассказываю, не потому что ты тян или мне понравилась ты мне уже не понравилась своим "утереть нос"А потому что я уже не поступлю в эту школу, в договоре написано что шанс 1 раз на жизнь. Так что спускаю их важные данные.
>>1343493>А чем это обусловлено? Что за у них особенности в архитектуре, что затрудняет реализацию свопа?Его отсутствием в операционной системе соснулей. Можешь спиздить на русракере SDK PS4, там про все подробно. Если в кратце - на соснулях уже давно обыкновенные ОС с точно такой же хуевой тучей библиотек, времена ебания регистров на ассемблере закончились лет так 15-20 назад.
>>1345423>"Danke schoen"Спасибо, всегда не знал, что делать в случаях, когда лень ставить фашистораскладку.Какой левел языка?
>>1345442> Можно ли обучаться дистанционно?> Нет, вы должны лично присутствовать в Школе 21 в Москве, поскольку основная часть процесса обучения проходит в прямом взаимодействии с другими студентами. К тому же все учебные материалы хранятся в электронном виде во внутренней сети Школы 21, и чтобы получить их, вы должны прийти в школу. Ясно, хуета.
>>1345675Что значит без фор?Если тебе нужно будет заполнить массив определенным способом ты будешь каждому элементу отдельно присваивать, не юзая for?Хуйня какая-то.базарю очередные юзлес курсы, которые ничем не отличаются от так же бесплатных курсов из инета
>>1345675Это и означает без сложной логики. Судя по базе заданий, там дают фундамент для последующего изучения алгоритмики. Оно и понятно, новичкам ни в одном языке сложную логику не дадут, иначе они нихуя не выучат.
>>1345854Ебучий долбоеб научившийся по хело ворлдам с /пр высирать в джейпейн параше свои дженерик проги считающие гыыы скока я ебал телок веди имя узнай знаю ли я пацана с таким иминем))) плиз завали ебало и не пиши ничего. Если ты не понимаешь почему новичкам в си даже на самых тупых курсах в стерлитамаке не дадут а первые месяцы ничего кроме вайла ну или свича с одним кейсом — просто иди нахуй тупой выродок
>>1345922Ты че тупой? Как думаешь почему в школе треугольники изучают раньше чем призмы и функции? Или ты в шестом классе так же пиздел училкам мол где мои интегралы Мань Аркадьевна зачем мне эту хуйню учить можно же из библиотеки 1996васянлиб функцию вызвать!!!))) Ладно скажу тебе чтобы ты понял получше, очевидно они там готовят не макак-дизайнеров, а реальных программеров, по вашему терминалоебов.
>>1345934Блядь, чем фор сложнее вайла, ты какую-то хуйню несёшь.А я могу считаться терминалоёбом ака реальным программером, если я пишу драйвер в ядро?Нам не запрещали в универе на первом курсе юзать принтфы или фор/ду вайл.
>>1345939>Блядь, чем фор сложнее вайла, ты какую-то хуйню несёшь>>1345684>Что значит без фор?>>1345684>Если тебе нужно будет заполнить массив определенным способом ты будешь каждому элементу отдельно присваивать, не юзая for>>1345939>Нам не запрещали в универе на первом курсе юзать принтфы или фор/ду вайл.Пиздец. Это точно Си тред? Как можно не вспомнить про goto блять. Сразу видно ни строчки кода на ассемблере не писали.мимо фп господин
>>1345963Если их научат правильно пользоваться goto, окей просто, но тыкать goto там, где можно обойтись без него полный бред, только ухудшает читаемость.да это си тред и тут есть встроенные циклы
>>1345989Хочешь поподробнее разузнать да? Девочка?Ну спроси ,что конкретно тебя интересует. Может отвечу. А пилить гигантские пасты мне не кайф, и так много тебе дал уже подсказок
>>1345989Проходил осенью интенсив в юнитфактори, тоже самое, но возможно от школы к школе меняются подходы. Первую неделе ебете линукс до посинения, начинаете разбирать си, собственно следующие 3 недели только сижкой и занимаетесь. В конце первой недели проект вдвоем, после второй — втроем, и на третьей впятером. Последняя неделя — несколько больших пректов, но абсолютное большинство успело сделать только один Если никогда не работала на маке, советую заранее разучить хоткеи, всякие прыгания по страницам, в конец строки, и самое полезное — control+shift+enject Не забывай проверять свои работы перед заливкой на вогсфер, не стесняйся спрашивать у шарящих ребят, ни при каких условиях не заебывай админов, даже если кажется , что они не заняты, хорошо высыпайся и не пытайся что-то сделать дома. Не общайся с одними и теми же людьми, всегда ищи новых и учись у них чему-то бтв юзание дебагеров приравнивается к читингу. Ну и само дальнейшее обучение по крайней мере в Киеве того не стоит, но бассейн это супер экспириенс.
>>1345442О чём ты вообще? Какое ещё сложное изучение через месяц?>>1345590Этого не слушайте. Система отбора никому неизвестна, главное стремиться поступить и усердно трудиться.>>1345989Если до школы не программировал, то задания на бассейне не будут казаться лёгкими.четвёртый месяц в школе 21 задавайте ответы
>>1346103> юзание дебагеров приравнивается к читингуНу охуеть теперь. Мне принтфами отлаживать чтоле?Мимо
>>1346269Я только так и умею. Получается довольно неплохо по крайней мере все работает, хотя я понимаю, что с приличной конторки меня бы выгнали ссаными тряпками.Нииблядь
Привет сигоспода.Прохожу Прату, на пике задача.В принципе, решение из вереницы if-ов приходят сами на ум. Гугление показало что практически все решили именно через простыню if-ов.Но заебавшись в 10й раз переписывать if-ы да, я тупой, решил по-своему.Ты наверное будешь смеяться над ньюфагом, а мне вот дичайше прёт что я написал понятный мне код.Просто хотел поделиться.И вопрос есть - если например железо поддерживает операцию swap как атомарную, как ее вызывать? Через ассемблерные вставки?Спасибо.
>>1346115Новый бассейн начинается 25 февраля.Что было на старом? Что вы изучали, что ты вылетел с бассейна?
>>1346372> если например железо поддерживает операцию swap как атомарную, как ее вызыватьКомпилятор и сам может сгенерировать. Но зачем тебе атомарно? Ты бы лучше в restrict поиграл, там ему самое место.
>>1346473>Компилятор и сам может сгенерировать.А как он знает что надо сгенерировать? Он видит что я взаимоменяю значения?
Что почитать по использованию записи "дополнение до 2" с символьной арифметикой? И вообще про операции сложения, умножения со знаковыми и беззнаковыми различной длины. Просто средства контроля переполнений и ошибок в процессорах различных семейств...А то как-то сухо везде, "вот это так делается - делайте так же".Хочется историю, мотивацию к созданию.Можно док-ва из дискретки тоже, что всё это работает, только вкратце, вводить в дискретку талмудами не надо.
Хочу придумать новый язык программирования.Высокоуровневый, мультипарадигма и без ооп. Сейфовый, сверхбыстрый и простым синтаксисом.Сверхбыстрый за счёт увеличения времени компиляции.Тогда даже Си пососет.Вопросы?
>>1346559Можно запилить, чтобы удобно было>>1346560Посмотрим как можно сделать это безопасноГлавное еще, супергибкость!
>>1346558> сейфовый> сверхбыстрыйВыбери что-нибудь одно.> Сверхбыстрый за счёт увеличения времени компиляции.Фортран?> Тогда даже Си пососет.Нет.
>>1346602>Выбери что-нибудь одно.Сделав умнее компилятор и возложив больше усилия на компилятор, мы получим сверхбыстрый код>Фортран?Нет>Нет.Да
Анон из школы 21. Как сделаешь такой код более быстрым и удобным?#include <stdio.h>int main() { int height = 0; int nbLeaflets = 0; scanf("%d %d", &height, &nbLeaflets); int tinuviel = height <= 5 && nbLeaflets >= 8; int calaelen = height >= 10 && nbLeaflets >= 10; int falarion = height <= 8 && nbLeaflets <= 5; int dorthonion = height >= 12 && nbLeaflets <= 7; if(tinuviel) { printf("Tinuviel"); } if(calaelen){ printf("Calaelen"); } if(falarion){ printf("Falarion"); } if(dorthonion){ printf("Dorthonion"); } if(!tinuviel && !calaelen && !falarion && !dorthonion){ printf("Uncertain"); } return 0;}
>>1346632Пиздец, это вот этому учат в этой школе: пытаться соптимизировать код из 5 ифов?Ебать как полезно.Скоро дойдете до оптимизации кода из одного принтфахелоу ворлдДаже интересно, вас там будут чему-то реально полезному учить или вот такой хуйнёй будете все время заниматься.Лучше сами что-то немного изучили и начали свой проект пилить, любой, и то больше опыта бы было.не блядь, серьёзно? вот ето — хваленая школа 21?
Сап, анон. Брату в шарагу нужно написать на плюсах программу сортировки пузырьком одномерного массива, который вводится с клавиатуры и имеет 5 элементов. Сам я веб-макака и с плюсами не знаком, можешь накидать код, пожалуйста? Делов на 2 минуты, а я благодарен тебе буду очень.
Что лучше подойдёт для вкатывания, vs community или vs code? С программированием в принципе знаком почти 10 лет. Но серьезно никогда не занимался.
>>1346740Короче, пока vs code. В студии я работал какое-то время, но там слишком много пока ещё ненужных вещей, которые занимают место.
>>1346746В студии есть встроенный компилятор, к вс код нужно прикручивать или компилятор от студии или мингв ставить.
>>1346757Я поставил мингв. Вроде бы работает, но почему-то дебагер не видит gdb. Он же идёт вместе с мингв, разве нет?
>>1346784грит, что у тебя в переменной miDebuggerPath должно быть что-то помимо "gdb". Найди поиском путь до gdb и впиши этот путь в переменную. Как мне кажется.Но я тут просто мимио ошиваюсь
>>1346801А у тебя компилятор сам-то хоть работает? Потому что если компилятор не видит, то значит у тебя в environment нет переменной, в которой находится путь до компилятора и дебагера. Я к тому, что там в предыдущем пикриле должно быть, наверное, не просто gdb, а full_absolute_path/gdb.exe
>>1346801асло, попробуй ещё закомментировать в json-настройке переменную "setup commands" и всё, что с ней связано и тогда запустить дебагер.
>>1346805В path естественно всё прописано, и бинарник он создаёт.Если путь до дебагера прописывать другим образом, то он просто не находит его.
>>1346801А ещё в ошибке указано, что переменная назывется "MIDebuggerPath", но в настройках переменная называется "miDebugerPath". Я так-то хз критичен ли тут регистр, но мне кажется, что критичен.>>1346809А разве в винде нормально, что путь начинается от корня? Я бы заменил слэши на бэкслэши. И либо вписал "C:\Programm FIles\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\gdb.exe ", либо "${path}/gdb".Но очевидно, что тут что-то ещё помимо этого. Но на этом мои полномочия всё.
И при этом всём красноглазиков после такого называют пердолями, хотя на винде это вот так вот делается, лол.
>>1346844це не язык. це формат передачи данных json, который вытесняет xml, ну, или не вытесняет, но конкурирует с ним. А если ты про язык, на котором обычно пишут, то это английский, ну и судя по тому, что настраивался мингв под студию, то это язык программирования Си, как и тред, в котором мы находимся.
>>1346820Пердолик поставил на винду пердовысер (даже два!) и пердолится. Что удивительного?Нормальные люди ставят студию и работают, но пердоли работать не могут, вот и ставят пердософт имитируя деятельность пердоленьем с ним.
>>1346920Вс код тоже проект мелкомягких, как и студия, какие проблемы?Он удобный и намного легче студии.я не говорю, что студия хуже вс кода, каждый пользуется тем, чем ему удобно, нет смысла осуждать кого-то за выбор рабочего окружения
>>1346922>какие проблемы?Твой дебилизм проблема. И мингв и вскод это линуксовые пердовысеры, какая разница кто их делал. Ни то ни другое на винде не нужно, там есть студия, в 100500 раз лучше, и всё работает без пердоленья. Но пердоля бесполезен, ему страшно когда всё работает, ведь тогда придется что-то делать - программировать, а он не может, вот и качает пердовысеры и ебется с ними, отттягивая неизбежное осознание собственного ничтожества.>намного легче студииСтудий дохуя версий, качаешь подходящую к твоему железу. Всё равно любая будет бесконечно лучше пердовысеров.>каждый пользуется тем, чем ему удобно>У МИНЯ НИРАБОТАИТ, ПОСОНЫ ПАМАГИТИ, Я ТУПОЙТакое-то удобство, азаза. Именно потому что тупой, и ставит пердософт. Как выше и обяснил, пердософн прекрасно подходит дебилам, сознавая из ничего занятие на пустом месте, как колесо для хомячков, в котором они радостно крутятся, воображая что умные и делают умные дела.
>>1346929Бля, ты какой-то дегенерат, который дико топит за конкретное ИДЕ, хотя ИДЕ это просто инструмент, можно в блокноте код писать, правда только для лаборатории подходит, т.к. серьезные проекты писать без нормального редактора довольно проблемно.чувак, лечись в тебе слишком много злости
>>1346929Я не ставил студию потому что там много ненужных мне на данных момент вещей. Как научусь грамотно писать проекты - поставлю. А пока функционала vs code мне хватает. Машина тянет студию, просто у меня и так дохуя тяжеловесных программ типа матлаба и прочих cad/cae. Если есть альтернатива более лёгкой (и удобной естественно) версии программы, то почему нет? К тому же будет полезный опыт настройки чтоб понять что к чему и куда идёт.И вопрос, почему это работаетfor (int i = 0; i < (p2 - 1); i++)а в случае передачи значения p2 через указатель - не работаетfor (int i = 0; i < (*p2 - 1); i++)
Посоны, студия так и не научилась в С11 нормально? Clang for windows походу тоже сдох, нипописать на няшной сишечке пол венду походу.Хотя можно сбилдить вижлой кажись, или цыгвин скочать. В чём разница будет? Что с С ABI будет? Смогу винапи юзать? А опенгл?
>>1346969Ну обычный пузырьковый алгоритм. 23 строчка.Это работает.https://pastebin.com/n1jMKfYxЭто не работает.https://pastebin.com/aYjHDzHb
Добрый вечер.Можете вкратце но аргументированно объяснить почему программист на c# или backend зарабатывает в среднем ощутимо больше, чем на c?Спасибо.
>>1347031Потому что ооп. А ооп прост для освоения типичному обывателю. Плюс схожесть с другими языками для ооп
Только идиот будет писать на сишке сейчас то, что можно написать на расте. Если выбора нет (типа всяких ёба-микроконтроллеров), то ладно, пишите на сишке
>>1347045Я твою мать нежно трахал даже предварительно не выделив памяти под свой хуй ибо у нее там ведро пиздец далбаеб иди нахуй
>>1347059>Я твою мать нежно трахал даже предварительно не выделив памяти под свой хуй ибо у нее там ведро пиздец далбаеб иди нахуй
>>1347061Нет, не можешь, любой может обосраться. Основная хуйня, что Раст помогает писать корректные проги, а Сишка - нет.
>>1347063Предлагаю тебе съебать и заняться делом. Например, выучить какой-нибудь хоть немного полезный язык, а если остаёшься то подготовь свою жопу к принятию моего трехмерного массива
>>1346978> Это не работает.А должно? А -Wall компилятору не пробовал указать, чтобы он тебе пояснил, что по адресу N (=5), который ты передал в p2, нету размера массива?
>>1347141> Всё равно.А какая разница, откуда ты берешь число, когда передаешь его вместо указателя? Включи ворнинги, читай ворнинги! А сделать ты хочешь вот это:int length = N;bubl(inp, &length);
>>1346832Это франшиза топовой французской школы 42. Обучение бесплатно, требуется только пройти отбор, который тоже бесплатный. Выпускники сразу претендуют на сеньеора в гугл.
>>1347168>франшизаЯ бы сказал, говнопародия.Выпускники такой школы могут только сосать хуй на пару с мамашей.
Школа 21 полезна в первую очередь комьюнити и мотивацией заниматься, делать совместные проэкты и не охуеть от сычевания в туториалы дома с мамкой.
Сейчас на бассейне по приколу, пришел уже с опытом разработки, и имею щас только 3 уровень, задавайте ответы.Скажу сразу, что есть подводные камни, из-за которых на деле все сложнее, чем кажется.
>>1347198На бассейне можно набирать уровень? Что за задачи делаете? Хотя бы примерно, чтобы понять к чему готовиться.
>>1347203Можно. Уровень отслеживает твой прогресс. Изучение похоже на типичный С-бугурт-тред: листы, байтоебля, массивы, компилятор. Изучи волл векстра веррор стандарты, ибо после другого языка на си будет перепрыгнуть тяжелее, у меня как у джава-хуя, например, была лютая любовь открывать тело функции в той же строке где она объявлена, из-за чего до 4 дня я получал нулевые отметки, машина даже не будет проверять твои задания, если что-то не по стандарту. Если в задании явно не написано, что определенную функцию/библиотеку/оператор можно применять в задании — значит применять его нельзя. Ну и большинство людей в твоих проектах будут дегенератами, надейся только на себя.
Задания не особо сложные. Если есть базовые знания алгоритмики и понимание типов данных, делать их труда особого не составит, тащемта проверяют они не то как ты пиздато луп с 80 условиями закрутишь чтобы он тебе судоку решил, а твой рост. Первое же про что почитай — типы данных, большинство людей, что на бассейне, что в /пр нихуя не могут именно из-за того что в первую очередь не понимают с чем работают.
>>1347211Про типы данных жиза. Уже второй год пошёл, как я учусь, а до сих пор не понимаю, как флоаты хранятся. И даблы соответственно.
>>1347198>из-за которых на деле все сложнее, чем кажется. Поясни за камни? Был на встрече, хотел спрашивать студентов, но мне сказала Руслана, что такие вопросы нельзя задавать.
>>1347215Никуда не планирую, я пошел с другом новичком, ибо ему одному было стрёмно, социофоб хека.>>1347214Я что ли ебу о чем ты там спрашивал?
>>1347168Выпускники претендуют?Вас там будут учить 5 лет, и вы все там будете участвовать в реальных проектах, с настоящим рабочим конвейером, CI настроите, тестеры будут отдельной командой.Или что, ты думал ты научишься писать крутойты так будешь думать код и тебя без опыта с одной бумажкой возьмут на сеньора?боже, вы такие наивные
>>1347290И всё таки, сколько вас там будут учить? Мне просто очень интересно что вам это даст и как поможет.
Какой смысл от указателей, кроме их использования в массивах? Часто вижу функции, которые на входи принимают именно указатель, даже если там всего-то одна переменная. Зачем?
>>1347301В функцию всегда передается копия аргумента. ТО указатели нужны:1. Чтобы копировать только указатель вместо большой структуры.2. Чтобы изменения сделанные внутри функции отразились на переданном объекте.3. Передача колбеков.
>>1347291Зависит от скорости обучения от 1.5 года до 4. И всё бесплатно. А ты и дальше плати за свою шарагу.
>>1347303Если передавать указатель вместо переменной, это значит что он создаёт копию этой переменной и будет занимать больше места в памяти? Значит надо всегда оперировать указателями, даже если нет необходимости менять аргумент? Просто хочу понять когда имеет смысл использовать указатель, а когда нет.
>>1346624Почему ты решил в школе выучить невостребованную сишечку? Твоя голоа запилить патч для линуса?
>>1347309Представь что тебе надо передать один байт. Указатель на него будет занимать 4 байта на 32 битной системе.
>>1347338>вижелЯ пока не досмотрел почему, но мне кажется, что последние числа при делении 1/10 это просто данные с соседней ячейки памяти, не связанные с самим результатом деления.
>>1339788 (OP)>- Стандарт ISO/IEC 9899:2011 (он же C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)700 страниц
Сап, анон. Возник такой вопрос. Например, я задал структуру, например слова с переводом. Ввожу слово в консоли и перевод через '-', все эти строки записываю в файл. Потом хочу прочитать этот файл и найти перевод нужного мне слова или наоборот. Как организовать поиск нужной строки по файлу без всякой лишней хуйни и динамической памяти(потому что еще не изучил, если она, конечно, в таком роде заданий нужна)?
Реквестирую небольшие программы на Си, написанные хорошим стилем. Ибо чую я, что костылить ООП в стиле map_get(mymap #m, const char #key, char #value) - хуевый путь.
>>1347559Можешь по простому объяснить чем scanf от sscanf отличается, а то про эти буферы нихуя не понятно
>>1347507Основная проблема стандарта не в количестве страниц, а в языке, которым он написан. Вон мы в самом начале треда обсуждали дереференс, и если бы формулировки были четкими и ясными, да еще не размазанными по половине стандарта, а сгруппированными по смыслу, обсуждать было бы нечего.>>1347542> как организовать поиск нужной строки по файлу без всякой лишней хуйни и динамической памятиДелаешь на стеке буфер достаточно размера (килобайт, например), читаешь строки по одной с помощью fgets, попутно разбиваешь их на слово и перевод с помощью strtok, strcmp проверяешь совпадения (или используешь какую-нибудь нестандартную _stricmp, чтобы не учитывать регистр).>>1347588Совершенно нормальный подход, так все и делают. Разве что я бы для удобства чтения привел в соответствие тип и префикс имени: mymap_get(mymap ptr map, ...).>>1347598> с использованием WinAPI, и являющиеся редактором конфиговВинда кэширует полупрожеванные .ini на некоторое время, когда ты делаешь GetPrivateProfileString/Int, поэтому можешь не заморачиваться и читать напрямую, не изобретая никаких внутренних мапов.>>1347708scanf() читает из stdin (пользовательский ввод из консоли). sscanf() читает из сишной строки в памяти. Можешь считать, что scanf() - это что-то подобное fgets(buffer, ..., stdin), после которого идет sscanf(buffer, format, ...) хотя на самом деле оно не так реализовано.
Объясните мне, почему в 2019 году не убивают сразу за консольные приложения под Windows, все эти printf и scanf. Я понимаю линукс, там консоль юникодная, но под виндой, писать под этот артефакт DOS и не сдохнуть от позора, как так можно жить вообще?
>>1347839Да, ведь как охуенно натягивать сову на глобус юниксвей на винду, попутно обсирая оконные приложения в системе которая называется "Окна", и при этом думать что ты не дебил.
>>1339788 (OP)есть какие то книги или примеры по функциональному программированию, как правильно писать функции как струтурировать и тд или это все с опытом приходит ?
>>1347838> линукс, там консоль юникоднаяВ винде тоже юникодная, в том смысле, что ты можешь выводить и UTF-16, и UTF-8, и все будет норм, только отобразится не все. Да и зачем тебе эмодзи и хангыль в консоли?
Стоит ли везде юзать unsigned int, если знаешь, что он не будет отрицательным? Например, в счетчиках?
>>1347874Да, ведь комбинировать программы это юниксвей, а не единственный способ иметь нормальную билдсистему, например.
>>1348082Сам так сперва ставил unsign, где типо положено; но стали возникать возникать трудноуловимые проблемы с приведением типов при арифметических операциях, теперь везде стараюсь ставить просто int.Пишу glsl шейдер, хочу провести препроцессинг, но gcc, что толькорасширения .c переваривает, можно как-то свой .vert сунуть?..Такие флаги: gcc -E -C -P PRE.c -o RESULT.c .
>>1348082unsigned типы вообще чаще всего не для этого используются..а чтобы байтики туда-сюда подвигать..
>>1348187Чтобы не мешался значащий бит?>>1348183>Пишу glsl шейдер, хочу провести препроцессинг, но gcc, что толькоПереименовать?
>>1348192>>1348251Ну я хотел поизящнее. Уже нашёл "-<" gcc -E -C -P -< shad/test.vert -o shad/test.vert_, препроцессинг есть, но только когда делаю #include он не влезает, почему-то файл остаётся того же размера, наверное должен быть флаг для разрешения переразмеривания. Вообще как прочитал это UB кормить gcc не .c файлы, но glsl похож синтаксисом так, что.. надо ещё поковыряться.
>>1348257>Вообще как прочитал это UB кормить gcc не .c файлы, но glsl похож синтаксисом так, что.. надо ещё поковыряться.Поищи тогда в тулзах от производителя видюхи. В glsl должен быть свой препроцессор же.
>>1347726>Делаешь на стеке буфер достаточно размера (килобайт, например), читаешь строки по одной с помощью fgets, попутно разбиваешь их на слово и перевод с помощью strtok, strcmp проверяешь совпадения (или используешь какую-нибудь нестандартную _stricmp, чтобы не учитывать регистр).Создал 2 массива строк через *, в цикле(пока не конец файла начал считывать строки через gets, сразу же делил через strtok_s, на всякий случай выводил в консоль 2 массива строк, все хорошо выводилось, но с поиском не получилось, потому что в следующем цикле введенная мной строка и эти массивы через strcmp не сравнивались. Теперь такой вопрос, как все строки в этих массивах сохранить, чтобы использовать их для сравнения в следующем цикле с введенной мной строкой?
>>1348251>Чтобы не мешался значащий бит?чаще всего signed типы немного сложнее устроены.. если планируешь байтоебить, полезно будет таки узнать
Написал консольную программу под линукс и решил перевести её на windows, кроссплатформа так сказать. ВО ВСЕХ ПРОЕКТАХ ТАКАЯ ХУЙНЯ С WCHAR_T ЖОПОЙ???
>>1348346Если я наделаю в своем проекте#define char wchar_t#define fputc fputwcc И прочее, то я не буду сукой? Мне глаза режут эти названия просто.
>>1348355Смена локали ВНЕЗАПНО может сломать всякие atof. Они, сука, разделитель системный тянут, так что какой-нибудь 5.71 может считаться как 0,00.
>>1348360Так как тогда блять делать нормальную кросплатформенную залупу для консоли? У меня уже агрессия какая-то, я не думал, что на винде все так злобно с этим.
>>1348082> Стоит ли везде юзать unsigned intunsigned int не стоит, из-за него компилятору на 64-битной системе придется генерировать лишние 1-2 инструкции (но если собирать с -frapv, то и для int тоже!). А вот size_t использовать можно и нужно, если итерируешься по индексам.>>1348333Может быть, код покажешь?>>1348360> Смена локали ВНЕЗАПНО может сломать всякие atofВнезапно локаль - это не только и не столько про кодировки, а как раз про всякие десятичные точки. Меняй не LC_ALL, а только LC_CTYPE.> Так как тогда блять делать нормальную кросплатформенную залупу для консоли?Не бывает кроссплатформенных программ сложнее хелловорлда. Страдай и портируй.
Почему такой свап не работает? Я думал он свапнет хотя бы первые цифры, но он не меняет ничего. Куда вообще указывает адрес при создании переменной?
>>1348433Попробуй вдуматься в то, что ты делаешь.не работает, потому что и не должно, попробуй осмыслить, что происходит, когда ты передаешь в свою функцию адреса переменных
>>1348431Иногда. При вычислении эффективного адреса из-за возможности переполнения. А для int переполнения нет.>>1348433Изучаешь укозатели брутфорсом? Ну удачи. В swap у tmp звездочку убери, у всего остального подставь.
>>1348424>А вот size_t использовать можно и нужно, если итерируешься по индексам.То есть for (size_t i = 0; i < size; i++) ...И чем этот сайз отличается от unsigned int?
>>1348424>не бывает кроссплатформенных программ сложнее хелловорлда. Страдай и портируй.Но жавабляди...
>>1348424>Не бывает кроссплатформенных программ сложнее хелловорлдаА у меня программа уровня хелловорлда.Она берет текстовый файл и с указанной частотой выводит слова в середине консоли (чтобы быстро читать). И даже на такой нупской задаче сосу с кроссплатформой.
>>1348433Рекомендую лучше termux поставить с nano или vim'oм вместе с клавой для кодинга. Удобнее в разы.
>>1348468> И чем этот сайз отличается от unsigned int? На 64-битных машинах unsigned int 32-битный, unsigned long как получится (привет, Microsoft), а size_t везде 64-битный. Если компилятор положит 32-битное значение в 64-битный регистр, ему нужно заботиться об арифметике с переполнением, а вот положить 64-битный size_t в 64-битный регистр можно без дополнительных сложностей. К тому же, size_t - это хорошая подсказка читающему, что речь идет о размере объекта или индексе.>>1348472> Но жавабляди...if (osName.startsWith("windows 9"))
>>1348481Так не получится. У тебя каждый следующий fgets затирает массив c новой строкой, а по-отдельности ты сохраняешь только указатели внутрь этого массива. Я тебе предлагал не совсем такой вариант. Я предлагал вводить искомую строку до чтения файла, потом читать построчно и сравнивать, храня в памяти только текущую строку, а не весь файл. Вот как-то так: https://ideone.com/MsdkUO Но если ты очень хочешь читать файл в память, и тебя устраивает захардкоженное максимальное количество строк, то просто сделай двумерный массив со строками:char c[20][200]; // 20 строк максимум, по 200 символов каждая.и читай не в c, а в c[i], ну и strtok тоже делай для c[i]. Алсо, чтобы заработало, надо убирать \n в концах строк, их fgets оставляет.
>>13486761 КБ. Чтобы упростить вычесления, можешь задефайнить 1кб размер и прибавлять один для конца строки, если много чарстрингов то читать их так будет намного удобнее
>>1348737Можно ли>word = strtok(line, "=");>translation = strtok(NULL, "");Заменить на word = strtok_s(c, "-", &translation);
>>1348939Что именно тебе непонятно? От тебя требуется написать программу, которая на вход получает текст с переносами и прочими вещами, но выводит на экран символы перевода строки видимыми. Простая софтина. Можешь несколькими путями сделать. Я б через регэкспы сделал.
>>1348942Я понял. "tab" и "\t" — два разных термина. Просто не самым понятным языком написано.Буду писать на ифах, потому что в книге, по сути, ничего больше не представляли. Решил оставить все предыдущие знания всех предыдущих языков программирования и изучить Си с нуля.
Указатель указывает на ячейку памяти какого размера? Вот к примеру я беру адрес числа, который занимает 4 байта. Указатель указывает на первый байт?
>>1348971Везде, твой код — не калькулятор, а хер знает что. Касаемо ошибки: чему равно d? Оно у тебя не инициализируется и не присваивается нигде.
>>1348951> Просто не самым понятным языком написано.Это английский.> Буду писать на ифах, потому что в книге, по сути, ничего больше не представляли.Ни в чём себе не отказывай. В книге скорее всего и подразумевается данным примером на практике проверить как ты усвоил материал. Если окромя ифов и циклов ничего не было, значит задачу совершенно точно можно решить уже пройденным матералом.> Решил оставить все предыдущие знания всех предыдущих языков программирования и изучить Си с нуля. Если раньше говнокодил на скриптовых языках, то правильное решение, но ломка будет страшная.>>1348955Если с 3-го раза не понял, стоило бы отложить чтение на пару часов доя прогулки на свежем воздухе. И, да, пожалуйста.
Как решить? И где можно онлайн записывать код? Хочу попробовать свои силы.int N;scanf("%d", &N);x +=2;for (int i = 0; i <= N; i++){ printf("%d", i x); x = x + i N;}printf("%d", x);return 0; Правильная логика?
>>1349097> где можно онлайн записывать кодhttps://ideone.com/https://wandbox.org/> решитьЧто там решать, когда все до мелочей описано?> Правильная логика?Зависит от того, как ты объявил x.
>>1349100>Зависит от того, как ты объявил x.Как инт. А как ещё можно?Просто практикуюсь на задачах. Спасибо за список сайтов.
Как программист на Си я специально посетил сей тред, чтобы недвусмысленно и решительно высказать своё "фи" так называемому компилятору ШЛАНГ. Надеюсь это говно никогда не взлетит и все так и будут сидеть на GCC и VC.
>>1349063Почему на картинке в одном месте переменная называется PTR а в другом месте - STR? Автор ёбу дал?
>>1348964Адрес указывает на байт. В памяти хранятся байты, других ячеек не бывает. Если тип указателя больше чем байт меньше не бывает, то указывает на начало - первый байт.
>>1349175>программист на СиТы-то мне и нужен. Как объявить числовой литерал по аналогии со строковым?
Затем, что мне нужно много числовых последовательностей, но нахуй не нужно плодить в каждой строчке новые имена для них. Видишь на пикче всего одна переменная n для всего.
>>1349177Так, что ты знаешь про объявления указателей в Си? Ты же в курсе, что указатель это отдельная переменная ссылающаяся на другую переменную?char str[] = “Hello”;char *ptr;ptr = &c;Понятно должно быть без проблем, как по мне.
>>1349263>Ты же в курсе, чтоАлё, кто знает про указатели, тому не нужны картинки. Такие картинки предназначены тем кто не понимает, чтобы они посмотрели и поняли. Но тут мы видим, что картинка - говно нарисованное жопоруким дебилом. В результате не помогает понять, а только еще больше путает. >указатель это отдельная переменная ссылающаяся на другую переменнуюНеправильно. Указатель ссылается на память, какую угодно, а вовсе не на переменные.
>>1349273> Указатель ссылается на память, какую угодновообще то в си указатели типизированные, за исключением спец случая void..
>>1349477ну, он же циклически печатает-5,-3,-1изначальный -1 будет каждую итерацию инкрементироваться, а изначальный 4 будет каждую итерацию декрементироваться. Доходят до {1,2} и после этой итерации условие перестаёт выполняться.
Я опять с тупыми вопросами. Только начал изучать С, а мне сразу структуры пихают. Пиздец.Седьмая строка - typedef struct rect_tag rect_t;Тридцать четвертая строка - rect_t intersection(rect_t r1, rect_t r2) {Что за тайпдеф стракт? Почему рект_т нужен? Короче, я только новичок в программирование, а курс сразу кидает на амбразуры. Нахуй так жить.
>>1349691>typedef struct rect_tag rect_t;сам нубас, но чутка понимаю структуры и кажется, что это какая-то мусорная строка. Зачем вообще объявлять структуру rect_tag, а потом тут же её переопределять как rect_t. Или так типо не нужно будет к её полям каждый раз прописывать доступ?
>>1349277У тебя во время присвоения значения произойдёт ошибка мисматч. Ты с типами данных разберись, у тебя каша в голове какая-то. Либо ты жирная зелень что скорее всего так и есть
>>1349691Это чтобы не писать каждый раз struct, а писать просто rect_tЧасто используется еще такой способtypedef struct {....} rect_t
>>1349748Если ты просто обьявишь структуру то тебе потом везде прийдеться писать struct rect_t, а с тем дерьмом можно писать просто rect_t. Почитай что такое typedef или просто игнорируй (пока) ту хуйню. Это чисто для удобства сделано, чтобы код почище был.
>>1349756Но для задачи по поиску пересечение двух прямоугольников это может быть удобно. Собственно моя задача об этом и была. А что почитать? Не могу найти инфу доступную.
>>1349219>>1349221В C99 и выше можно так:int ∗n = (int []){1, 2, 3};Но у тебя там кресты, а в стандартных крестах этого нет, но возможно, что твой компилятор это поддерживает в качестве нестандартного расширения.
>>1350078Я правильно понял, что твоя функция берет аррей и умножает каждое число в нем на три?Учусь читать код.
>>1350006>>1350121>[BCC32 Error] : E2188 Expression syntaxПонятно, спасибо.Напердолил через строки, хотя лишние нули в конце раздражают, да и сам пердолинг тоже. Чем эти петухи занимаются в своих комитетах, наверное шлюхами и коксом, что не могут в байтоёбском языке сделать определение байтов.
>>1350208Объясни, кто тебе мешает сделать static const uint8_t data1[] = { ... }; Литералы, которые тебе предложили, практически ничем от этого не отличаются. Это ведь протокол какой-то, неужели сложно имена переменным придумать? Ну или если компилятор умеет в __COUNTER__, можно обернуть в макрос и генерировать серийные номера.
>>1349175> Как программист на Си я специально посетил сей тред, чтобы недвусмысленно и решительно высказать своё "фи" так называемому компилятору ШЛАНГ. Надеюсь это говно никогда не взлетит и все так и будут сидеть на GCC и VC. С разморозкой. Вынуждены вас огорчить, за время вашего криосна это поделие с байткодом таки хайпануло по-крупному и уже вот овер 5 лет как стало кококорпоративным стандартом в кресто-няшно-мейнстриме, а мелкомягкие таки сдались и поддержку оного шланга у себя в студии запилили. Один только линус пока держится и еще пара красноглазых.
>>1347588> Реквестирую небольшие программы на Си, написанные хорошим стилем. Ибо чую я, что костылить ООП в стиле map_get(mymap #m, const char #key, char #value) - хуевый путь.https://github.com/id-Software/Quake-III-Arena
>>1348424чел откуда ты столько знаешь, опыт или книги есть спецальные просто вот про unsigned int удивило , ты просто в компиляторе разбираешься круто или где то инфу взял ?
>>1349175>>1350247Вы такие умные, а рассказать что плохого в силанг можете? Мне правда интересно потому что пользуюсь им немного.
>>13502881. Выходит, со шлангом проблем нет, а проблемы с LLVM? Почему же выше сказано наоборот?2. Какие тогда проблемы с LLVM?
>>1350078Какой же у тебя лютый говнокод, просто пиздец. Взять хотя бы циклы, это же потенциальная база для выполнения операции переполнения буфера.Если ты заранее знаешь размер массива, то на какой хуй ты не указываешь его длинну? Если ты знаешь длинну массива, то на какой хуй ты её вычисляешь в цикле? Идиота ты кусок ебаный. Делай цикл с отчётом от последнего элемента в массиве, это заодно примитивная оптимизация, которая требует меньше машинных операций и защита от переполнения массива.Блядь, животное ты ебанутое и ты ещё будешь давать советы нубам не читать чужой код? Ох ты и чепуха ебаная. Твоё место в ЖЭКе на получение униформы и метлы. Ебать, что за дегроды растут.>>1350096Анон, не слушай ты эту хуету >>1350078 ебаную, он поц пиздючный, решил тут повыёбываться.
>>1350552> Какой же у тебя лютый говнокод, просто пиздец. Взять хотя бы циклы, это же потенциальная база для выполнения операции переполнения буфера.Если он случайно забудет изменить макрос после изменения массива при объявлении — да, если уж используешь макрос для размера будь добр при объявлении массива дать ему этот размер.> Если ты заранее знаешь размер массива, то на какой хуй ты не указываешь его длинну?Собственно вот.>Если ты знаешь длинну массива, то на какой хуй ты её вычисляешь в цикле? В каком месте он вычисляет длину в цикле?>Идиота кусок ебаный.Давай без оскорблений, все когда-то начинали.>Делай цикл с отчётом от последнего элемента в массиве, это заодно примитивная оптимизация, которая требует меньше машинных операций и защита от переполнения массива.Вот тут объясни что ты имеешь в виду.> Блядь, животное ты ебанутое и ты ещё будешь давать советы нубам не читать чужой код? Ох ты и чепуха ебаная. Твоё место в ЖЭКе на получение униформы и метлы. Ебать, что за дегроды растут.Опять же, успокойся, пожалуйста.
>>1350575Во-первых, есть переменная i, которая на каждой итерации цикла прохождении от 0 до конца массива инкриминируется. В этот момент происходят операции вычисления длинны массива циклом, в условии хоть и задан предел, ро цэ переменная, значение которой можно поменять в любой момент и вот в этом проблема безопасности кода.Во-вторых, обратный цикл от известного максимума до нуля не производит операций по вычислению длинны массива (он тупо уже не вырастет). Соответственно даже изменив на лету макс значение переменной во вреия выполнения не приведёт к чему либо страшному. Дизассемблируй оба цикла, чтобы нагляднее было.
>>1350289Нет никаких проблем. Просто у сектантов пригорает от лицензии шланга, она для них слишком свободная.>>1350583> операции вычисления длинны массиваЭто ты так сейчас обозвал практически бесплатную инструкцию lea?> проблема безопасности кодаКакие-то фантазии. Если есть баг, позволяющий испортить my_size, то скорее всего, он же позволит испортить и i. Да, на проходе по массиву из конца в начало можно выиграть несколько байт размера кода, заодно проиграв в быстродействии, но вот на безопасность проход в обратном порядке не влияет вообще никак.
Блять смешно читать как вы, дегенераты не могущие посчитать сколько вам байт на введённый хело ворлд выделить на полном серьезе обсуждаете оптимизацию и безопасность кода. Юзаете си как входную точку для вайтивайти — не заебывайтесь по этому поводу, вам надо понять как работает, а не чтобы БЫЛА ВСЕ ПО СТАНДАРТУЕбланы сука ощущение что вы поиграться просто хотите, а не реально чтото понять
>>1350720Определение площади пересечения прямоугольников?Формализовать задачу. Определить закономерность, алгоритм. Разбить решение на элементарные части. Оптимизировать. И уже потом писать код.
>>1350721Да ничего плохого в форе нет, просто старые стандарты, ну и поэтому много задач алгоритмических в задачниках задуманы для решения вайлами, попробуй, хороший челлендж
>>1350661Не смеши. Если размер массива задан, то проход в цикле от последнего элемента до 0 безопасен тем, что динамически ты уже не поменяешь размер массива. Попробуй добавить элемент в массив во время выполнения цикла.«Если есть баг» — не заданный размер массива и есть баг. В него динамически можно добавлять элементы.В быстродействии обратный цикл выигрывает — это пускай маленькая, но оптимизация. И он таки быстрее, чем цикл с перебором элементов, который ты выше представил.
>>1350700Влажным негритянским пенисом тебе по губам, шлюшка ты белая. Проститутка, сгоняй на хуй и не возвращайся.
>>1350762Эй хуета из ШкОлЫюНеТфАкТоРи, иди нахуй. Я твой рот ебал, ебаный дебил. Нахуй ты что-то пишешь вообще ты же тупой как пень
>>1350723Если мне нужен счётчик и я знаю сколько раз провернется алгоритм, я всегда беру фор. Вайл только для неопределенного количества итераций и без счетчика. Можно вайлом сделать то же что и фор, но зачем? Это ведь усложняет код.
>>1350770У меня за плечами МФТИ прикладной математики, щенок ты самообразованный. Раз папа сказал тебе пошёл нахуй, значит ты встаёшь и идёшь нахуй. Залупа ты мелкобуквенная.
>>1339788 (OP)Аноны, подскажите. Надо сделать тест на 80-100 вопросов, в каждом вопросе только 2 ответа "да" или нет". Потом сравнивать набранные баллы. Например, если по по одной шкале(для определенной шкалы, существуют определенные вопросы, например, 2, 5, 19, 44, хотя все вопросы в тесте идут по порядку, т.е. 1, 2, 3, 4, 5...100.) 10-15 баллов - это средний показатель, то что ниже - низкий показатель, соответственно выше - высокий. В итоге, прошедшему тест на экран выводятся его результаты.В гугле почитал, то что вопросы нужно грузить из файла, но в каком, собственно, виде это делать?
>>1350865Запускаешь его с поданым в параметр именем файла и считыватешь, или пайпуешь и читаешь через стандарт инпут
>>1350874Можно про первый вариант поподробнее, а то я тупой. Как должен выглядеть файл?1)Вопрос-Да-Нет2)Вопрос 2-Да-Нети т. д.Вот так?
>>1350876В строчке первым пусть идут номер вопроса, потом баллы за да и нет, а потом сам вопрос. В консоли или куда там пусть выводятся вопросы по порядку, а как вводить ответ уже сам решай.
>>1350902Например1,5,0,Ты пидор?2,0,5,Твоя мать шлюха?3,2,4,Почему мужчины смеются над блондинками?Лучше разделитель запятая, потому что многие программы работают так. Например через екскль будет удобнее импортировать данные.
>>1350903Если хочешь с другими вариантами ответа, то тут можно поставить число после порядкового номера которое будет указывать на количество вариантов ответа, а в последующих строках, собственно, сами варианты с весом ответа.Например1,3,Ты пидор?5,Да0,Нет5,Немношк
>>1350761> Попробуй добавить элемент в массив во время выполнения циклаПопробуй делить на ноль в цикле. Попробуй по нулевому указателю писать. Если ты захочешь сделать глупость - тебе никто не запретит.> В быстродействии обратный цикл выигрываетХуево дружит с кэшами и еще более хуево векторизуется.
Рейт. Считает площадь пересечения двух прямоугольников. Если пересечения нет, то площадь ноль.https://pastebin.com/vwdDTVCKАлгоритм придумал за минут 10-20, всего ушло 2 часа
>>1342851Вот например целая специализация на edx:https://www.edx.org/professional-certificate/dartmouth-imtx-c-programming-with-linuxЕсли тебе сертификат не нужен, то можно бесплатно всё проходить.Решил тряхнуть стариной и вспомнить С, прохожу первый курс, оооочень всё медленно объясняют, вплоть до объяснения где на клаве найти спецсимволы.