Программирование


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
512 53 128

C Programming Language #51 /clang/ Аноним # OP 07/12/19 Суб 20:29:18 15404311
C Programming L[...].png (78Кб, 792x1023)
792x1023
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://ideone.com/#, https://wandbox.org/ или 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 (драфт)
- Черновик стандарта ISO/IEC 9899:202x (C2x): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2385.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://web.archive.org/web/20190213011655/homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf

Еще более длинный список: http://www.iso-9899.info/wiki/Books#Learning_C

https://github.com/kozross/awesome-c

Онлайн-утилиты:

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.

Прошлые треды:

- №48: http://arhivach.ng/thread/495505/
- №49: http://arhivach.ng/thread/496205/
- №50: http://arhivach.ng/thread/502813/ >>1518919 (OP)
Аноним 07/12/19 Суб 20:36:44 15404382
Аноним 07/12/19 Суб 20:42:16 15404443
Чем конст помечается в этих ваших байтах? Может есть какой-то сегмент в стэке или дампе, куда складываются адреса констант и ось начинает членососить за попытку что-либо из этого изменить? Или как оно всё это делается - расскажите плс.
Аноним 07/12/19 Суб 20:56:22 15404564
>>1540444
Ничем. const - для программиста и компилятора в основном. Но да, компилятор может положить static const или некоторые литералы в сегмент, доступный только на чтение, и тогда при попытке что-то поменять программа свалится. Если у тебя микроконтроллер, то этот сегмент обычно физически недоступен для записи вообще или без плясок с бубном, а если десктоп, то требующиеся атрибуты сегмента записываются в исполняемом файле.
Аноним 07/12/19 Суб 21:31:08 15404805
>>1540444
ничем
создатели си поэтому поводу очень не хотели добавлять const в язык и сделали это только под сильным давлением общественности

Аноним 07/12/19 Суб 21:37:32 15404856
Си для прграмми[...].png (2842Кб, 300x420)
300x420
Аноним 07/12/19 Суб 21:38:26 15404867
>>1540480
Фактически const добавили в комитете по стандартизации, а не Ричи с Томпсоном.
Аноним 07/12/19 Суб 22:52:22 15405428
image.png (99Кб, 1366x768)
1366x768
>>1540172
Ну, хуярим немношк указателей и у нас работает. Это, правда.
Аноним 07/12/19 Суб 22:53:38 15405449
>>1540542
>Это, правда, .cpp, но должно работать и в Си.
Аноним 08/12/19 Вск 09:54:40 154073410
Сап двач, есть такая проблема что не могу сделать лабы по проге, а скоро сессия и если не сдам, то не допустят к ней. Прошу помощи двач, т.к сам я учусь не на программиста, но приходиться учить Си.
Дана строка состоящая из слов разделённых пробелами. Нужно вывести слово с максимальной длиной, порядковый номер этого слова, и номер позиции с которого оно начинается.
Вектора нельзя, стринг нельзя. Чисто строка как чаровский массив.
Помогите пожалуйста
Аноним 08/12/19 Вск 11:15:23 154074711
Аноним 08/12/19 Вск 11:28:09 154075512
>>1540734
за один проход все делается.
Тебе нужно на каждом пробеле сравнивать расстояние до прошлого пробела с последним рекордом, если расстояние больше чем рекорд, то ты это расстояние и индекс-расстояние+1 записываешь. В конце просто выводишь
Аноним 08/12/19 Вск 11:31:27 154075713
>>1540755
Ну я пытался так сделать, но у меня нихуя не вышло и я психанудл и удалил всё, если ты шаришь, может объяснишь мне всё например в дискорде. Не за бесплатно конечно, можно о цене договориться
Аноним 08/12/19 Вск 11:36:19 154076414
>>1540757
Бляяяяя дай лучше мне денег!!! это же хуйня на самом деле. самый стоковый конечный автомат с inword-outword.
Аноним 08/12/19 Вск 11:41:51 154076815
>>1540764
Да я понимаю что хуйня, но я оч ленивый и тупой, поэту и хочу найти человека чтобы подтянуть мои знания
Аноним 08/12/19 Вск 12:09:08 154077816
Аноним 08/12/19 Вск 12:17:37 154078417
А что это значит?
while (index < ibuf) {
++index;
write(1, &string[index], 1);
}>>1540778
Аноним 08/12/19 Вск 12:54:08 154080318
Привет, форумчане! я ещё новенький. Есть где-нибудь в свободном доступе массив с cp866 (индекс -- dec номер, значение -- собсна символ)? Можно, конечно, ручками всё вбить, но как-то не очень хочется.

Гуглится оно не очень, ну или просто запросы у меня хреновые.
Аноним 08/12/19 Вск 13:18:00 154081119
>>1540803
Возьми и распечатай, ты программист или где.
Аноним 08/12/19 Вск 13:18:29 154081220
Аноним 08/12/19 Вск 15:05:20 154091721
>>1540778
Надеюсь не встречу в жизни людей, такое пишущих

перекрестился
Аноним 08/12/19 Вск 17:34:55 154104622
Аноним 09/12/19 Пнд 07:45:18 154161423
>>1540784
походу он просто не знал как срез строки вывести, вот и вывел сичтемколом
Аноним 09/12/19 Пнд 13:20:51 154181324
image.png (78Кб, 300x169)
300x169
Аноним 10/12/19 Втр 00:13:09 154237725
Обожаю сишечку, недавно сел и написал без задней мысли свой hello world на одном дыхании. На крестах хуй такое провернешь.
Аноним 10/12/19 Втр 01:26:31 154244426
Аноним 11/12/19 Срд 00:29:41 154323727
>>1542377
Анон, я так и не понял, что у тебя там не провернуть на крестах?
Аноним 12/12/19 Чтв 00:16:16 154395028
>>1543237
Сел и пишешь, не надо никакую архитектуру обкатывать, думать в какой манере код писать и прочие проблемы крестов.
Аноним 12/12/19 Чтв 00:53:08 154396629
>>1543950
>думать в какой манере код писать
Когда пишешь на цэпепе, не используй функции из библиотеки C, только std, только хардкор. Я решил твою проблему.
Аноним 12/12/19 Чтв 02:41:24 154398530
>>1543950
Прямолинейность - это да. Но разница лишь в том, что сишечка меньше вопросов задает при фокусах с памятью, всякими километровыми кастами мазать код не надо. А архитектура уровня laba2.cpp на любом языке зашквар при большом масштабе проекта, так же как и проебать большую часть времени на написание абстрагирование каждого чиха, когда у задачи есть фиксированное начало и конец в пределах нескольких сот строк код.
Аноним 12/12/19 Чтв 02:46:15 154398631
>>1543966
дык инклудишь <cstdio>, а не <stdio.h>, и будет тебе std::printf
Аноним 12/12/19 Чтв 05:31:25 154400532
>>1543950
Код это код, как написал так и будет. Кресты не ограничивают, проблем нет, только кривые руки танцора.
Аноним 12/12/19 Чтв 13:50:15 154424033
Столкнулся с тем, что использую такое описание функций:
код = функция(&данные)
Есть ли какое-либо соглашение какой код ошибки должен быть при успехе? Просто логично использовать положительное значение - истинность возвращаемого значения глазами читается как успех выполнения, но тогда нельзя указать несколько вариантов ошибок. Если поставить успешное выполнение на 0, то мозолит глаза постоянная проверка !что-то. На какой стул сесть?
Аноним 12/12/19 Чтв 15:54:12 154438234
>>1544240
Эта социошлюха, вместо написания кода беспокоится быть как все, а то вдруг погонят.
Куда бы ни попала, что бы не делала, на уме только одно - социоблядство.
Аноним 12/12/19 Чтв 16:05:07 154439435
>>1544240
0 == , никто не запрещает писать константы справа, так читаемо
Аноним 12/12/19 Чтв 16:28:18 154441536
>>1544240
Зависит от того, сколько вариантов ошибок тебе нужно получать. Если только успешность/неуспешность исполнения, то 0 при ошибке, и любое другое значение при успехе. Если вариантов несколько, то выносишь ошибки в дефайны, а 0 сигнализирует успешное завершение. По типу такого:

int err = func(data, buf);
if(err) {
if(err == ERR_DATAOF) free(buf);
else HandleCriticalErr();
return;
}

Есть ещё третий вариант - возвращать 0 при ошибке исполнения, а код ошибки ложить куда-то в глобальную переменную (либо функцию по типу GetErrCode(), которая это значение откуда-то получает), если тебе код ошибки нужен только изредка, а получать ненулевое значение при успешном выполнении хочется; но это уже извращение.
Аноним 12/12/19 Чтв 19:12:15 154455737
>>1544394
>писать константы справа
Выглядит уебищно
Аноним 12/12/19 Чтв 20:02:22 154460438
>>1544557
>слева
фикс
Норм выглядит, ты чё?
Аноним 12/12/19 Чтв 20:06:30 154460939
>>1544240
Но ведь вариант с разными кодами ошибок и 0-success соответственно предполагают, что ты этот код еще будешь смотреть, а значит возвращенное значение использовать несколько раз, а значит сначала присваивать его переменной по-любому. Ну, а ! или 0== это на любителя, не желающего обрабатывать ошибки должным образом.
Аноним 12/12/19 Чтв 20:26:33 154461640
>>1544604
>Норм выглядит
>0 == yoba
Хуйня, у меня моцг такую логику не понимает, что то должно равняться константе, а тут 0 равен чему то, пиздец короче
Аноним 12/12/19 Чтв 20:58:34 154466441
>>1544616
Что тебе не нравится? Значение функции же выползает из ее имени и присасывается к переменной, когда присваиваешь. Вот ты на месте это переменной ставишь константу и сравниваешь. Гораздо более читаемо, чем после скобок с аргументами. Хуй найдешь там справа. А так и вызов никуда особо не уехал, и константа перед глазами. Это норм практика, писать раздуваемые в длине выражения справа.
Аноним 12/12/19 Чтв 21:01:47 154466742
>>1544616
то же самое, что !, но ! звучит, как "бля", а 0==, как "заебись"
Аноним 12/12/19 Чтв 21:24:22 154468043
int const i = malloc(sizeof(int)5);
i[0] = 1;

Почему ругается на рид онли, я ж указатель не меняю?
Аноним 12/12/19 Чтв 21:33:59 154469544
>>1544240
В винапи подсмотри. 0 успех, < 0 ошибка, > 0 статус, доп информация.
Аноним 12/12/19 Чтв 21:44:26 154471445
>>1544664
>Это норм практика, писать раздуваемые в длине выражения справа
Такое видел только в маняучебниках
>>1544667
> а 0==, как "заебись"
Как говно звучит, вот заебись звучит func(data, buf) == ERROR,
причем возвращаемый 0 это иногда нихуя не ошибка.
Аноним 12/12/19 Чтв 21:50:21 154472346
>>1544714
охуительно, особенно когда функция до шести параметров принимает
>звучит
Я имел ввиду, отрицание ассоциируется с тем, что что-то не так, а 0 - с отсутствием проблем.
Аноним 12/12/19 Чтв 22:05:14 154474747
>>1544723
>функция до шести параметров принимает
Это то при чем?
>отрицание ассоциируется с тем, что что-то не так, а 0 - с отсутствием проблем.
Только в твоих фантазиях, все ошибки и статусы всегда заменяются дефайнами.
Аноним 13/12/19 Птн 00:51:40 154486148
>>1544240
> Если поставить успешное выполнение на 0, то мозолит глаза постоянная проверка !что-то
Это единственное, что тебе мозолит глаза в таком языке, на си? Тогда ты очень избирателен
Аноним 13/12/19 Птн 06:14:09 154496149
Сборище детей маня олимпиадников. Одни кукаретики, никто программ не писал, иначе бы знали что за них уже давно всё придумано:

if (!SUCCESS(vasyanfunc())) {
printf("puk");
}
Аноним 13/12/19 Птн 06:47:22 154496450
лол, не ожидал такой реакции на вопрос, но за советы спасибо
>>1544382
а персонально тебе - ты пидор и неудачник, стыдно быть тобой
Аноним 13/12/19 Птн 06:54:15 154496551
>>1544394
>>1544616
Это главным образом для защиты от случайного присваивания когда один знак = проебется
if (yoba = 0) // а хотел сравнить yoba == 0
if (0 = yoba) // компилятор поднимет шухер
Аноним 13/12/19 Птн 06:54:27 154496652
>>1544240
Обычно возвращается код ошибки, а 0 значит "нет ошибки"
Аноним 13/12/19 Птн 07:01:43 154496753
13/12/19 Птн 07:50:26 154497254
image.png (15Кб, 356x283)
356x283
Ну и каким блядь образом в этом ебаном языке СКОПИРОВАТЬ БЛЯДЬ ОДНУ СТРОКУ В ДРУГУЮ? А ЕСЛИ ПЕРВАЯ СТРОКА ПУСТАЯ? А БЛЯДЬ? ДЛЯ КОГО ЭТОТ ЕБАНЫЙ ЯЗЫК БЛЯДЬ?
13/12/19 Птн 07:51:26 154497355
image.png (23Кб, 633x301)
633x301
>>1544972
Эти ебаные цифры вообще нихуя не влияют ни на что
13/12/19 Птн 07:57:18 154497456
image.png (23Кб, 641x183)
641x183
Какого хуя блядь сбрасывает адреса на элементы в структуре блядь я же блядь передаю ебаный адрес на структуру какого хуя блядьааааааааааааа
Аноним 13/12/19 Птн 08:32:47 154498157
>>1544973
Ну ты же хочешь поменять в рантайме const char*, конечно это упадет
Аноним 13/12/19 Птн 08:33:35 154498258
>>1544973
Неосилятор шиндусятнек с первого курса плез
Аноним 13/12/19 Птн 09:36:32 154498959
>>1544974
Ты когда malloc делаешь у тебя структуре новый адрес выдается.
13/12/19 Птн 09:43:26 154499560
>>1544974
>пик
Лол, тебе надо клоуном работать, такой талант, по всем граблям голой жопой проехался.
Аноним 13/12/19 Птн 09:55:35 154500161
Аноним 13/12/19 Птн 11:40:48 154509162
>>1544974
ого каким стайлгайдом пользуешься? а piton-dalbaeb знаю такой
13/12/19 Птн 15:38:29 154536263
>>1544995
Меня охуенно радует что нигде в мире не написано и не объяснено каким хуем это должно работать и что нужно сделать чтобы это дерьмо работало, и единственный способ узнать как что-то запрогать на этом "языке программирования для людей"... Нажмите на ссылку чтобы узнать!
13/12/19 Птн 15:40:50 154536664
>>1545362
И ни один "рабочий" код в интернете не работает. Охуенно правда? Программирование это охуенно.
Аноним 13/12/19 Птн 16:11:56 154540565
>>1544974
Ты должен не int возвращать, а указатель на структуру и уже то что вернулось проверять, равно оно нулю или нет.
Аноним 13/12/19 Птн 16:21:45 154541766
>>1545362
>>1544974
зато ты теперь будешь знать зачем таки нужен указатель на указатель, лол


Аноним 13/12/19 Птн 16:36:58 154542867
image.png (43Кб, 774x378)
774x378
>>1545417
Я передаю блядь УКАЗАТЕЛЬ НА СТРУКТУРУ КАКОГО ХУЯ ОН НЕ СОХРАНЯЕТСЯ
Аноним 13/12/19 Птн 16:45:51 154543968
image.png (30Кб, 773x199)
773x199
Аноним 13/12/19 Птн 16:48:51 154544669
>>1544972
Я об этой хуйне уже в 11 классе от учителя узнал, а тут взрослый ньюфажка с двача не может разобраться лол
Аноним 13/12/19 Птн 16:50:43 154545070
>>1545446
>>1545428

Сделал уже, но ощущение что это работает как ебаный костыль.
Аноним 13/12/19 Птн 17:07:07 154547971
Аноним 13/12/19 Птн 17:28:25 154550372
>>1545479
Похоже на visual studio code
Аноним 13/12/19 Птн 17:44:43 154551773
image.png (4Кб, 216x88)
216x88
Аноним 13/12/19 Птн 18:47:46 154558074
>>1545517
>App
Хочется взять и уебать, кирпичом.
Аноним 13/12/19 Птн 19:15:03 154560075
Ебните кто-то это шизло из очередной школы 21, что весь тред засрало своими очень важными скриншотами
Аноним 13/12/19 Птн 19:56:23 154563076
>>1545428 >>1544974 >>1544973 >>1544972

Программа таки заработала нормально.
https://pastebin.com/RNHJrMWy если кому интересно

>>1545580
Через консоль компилить слишком сложно и непонятно и нет возможности построково прогу выполнять, а качать вижал студио 2007 с троянами слишком страшно.

>>1545600
Че охуенно умный да? Родился сразу сеньёром да? Слышь может за гаражи зайдём дон? Сколько жмёшь от пола дон?
Аноним 13/12/19 Птн 21:01:05 154566477
>>1545630
>Слышь может за гаражи зайдём дон?
спасибо, но нет
предпочитаю отсос от 17ти летней студенточки

Аноним 13/12/19 Птн 21:02:56 154566578
>>1545600
>очередной школы 21
двачую
лучше бы мышцы качали - это хоть бы пригодилось когда грузчиками в пятерочку пойдут вкалывать, хотя бы не сразу позвонки на спине сотрут, а лет через 7м

Аноним 13/12/19 Птн 22:07:58 154569579
>>1540431 (OP)
Так сисюны, вот вам реальная задача, есть последовательный сортированный числовой массив размером не больше 1000 и нужно искать в нем элементы быстро аки боженька, кроме бинарного поиска еще что нибудь есть?
Аноним 13/12/19 Птн 22:19:04 154570480
>>1545695
С бинарным поиском худший случай слишком долгий.
Аноним 13/12/19 Птн 22:21:11 154570881
>>1545704
Есть предложения? Проблема еще в том, что нужно знать размер массива, а это инт занимающий память...
Аноним 13/12/19 Птн 22:28:02 154572282
>>1545695
С бинарным поиском худший случай слишком долгий. Но альтернатива это ток экспоненциальный наверное или интерполяционный, и там худший случай тоже хуевый
Аноним 13/12/19 Птн 22:33:26 154572883
>>1545664
> предпочитаю отсос от 17ти летней студенточки
> учит язык программирования Си
Лул.
Аноним 13/12/19 Птн 22:58:01 154576084
>>1544961
> if (!SUCCESS(vasyanfunc())) {
> !SUCCESS
А там ведь еще и FAILED есть, чего ж не притащил? И это плохо выглядит, когда тебе этот статус еще потом нужен.

>>1544965
> if (0 = yoba) // компилятор поднимет шухер
А потому что нехуй с нулем сравнивать. Традиционные проверки if (func() != 0), if (!func()), ну и всякие там if ((x = malloc()) != NULL). Ошибиться негде, проблема надуманная. Алсо, этот кривой стиль все равно не защищает при сравнении с переменной.

>>1545695
Создаешь тысячу элементов, инкрементируешь те из них, для которых в твоем изначальном массиве есть элемент, получаешь поиск с O(1), идешь нахуй со своей баянной задачей для детей.
Аноним 13/12/19 Птн 23:02:49 154576885
>>1545760
>для которых в твоем изначальном массиве есть элемент
Есть во всех, все элементы массива заполнены
Аноним 14/12/19 Суб 04:05:36 154591986
>>1545695
если еще быстрее то нужно менять структуру данных
хешмап даст константу в поиске

Аноним 14/12/19 Суб 04:10:46 154592087
>>1545695
Линейный поиск. На массиве в 1000 элементов вероятно будет быстрее всего.
Аноним 14/12/19 Суб 04:54:46 154592388
>>1545768
> Есть во всех, все элементы массива заполнены
build_lookup: table[0..max] = {0}; for elem in src { table[elem]++ }
lookup(x): table[x] != 0
Аноним 14/12/19 Суб 17:32:18 154636389
Какие еще есть применения вариативных функций, помимо семейства функций ввода-вывода printf/scanf?

Аноним 15/12/19 Вск 00:26:22 154682590
Аноним 15/12/19 Вск 11:58:53 154712991
image.png (39Кб, 545x497)
545x497
>>1540542
А мог бы вместо языка плебеев, писать на языке сверхлюдей.
Аноним 15/12/19 Вск 13:16:53 154718292
>>1545695
11 итераций это слишком долго? ты че ебанутый?
Аноним 15/12/19 Вск 13:44:08 154719793
>>1545920
У него сортированный массив.
Аноним 15/12/19 Вск 16:39:05 154737594
Аноним 16/12/19 Пнд 04:39:31 154788695
>>1547197
Какой может быть поиск кроме деления пополам?
Аноним 16/12/19 Пнд 10:34:46 154803996
>>1545600
Нахуй иди, в школе21 с нуля сишную либу пишут, в том числе и strcpy и принтфы всякие, при желании и на ассемблере
Таких дегенератских вопросов там никогда не будет
Аноним 16/12/19 Пнд 11:09:52 154805897
>>1548039
>в том числе и strcpy
не ну раз strcpy тогда ладно
Аноним 16/12/19 Пнд 11:57:56 154808798
>>1548039
ох ебат, вот это уровень
Аноним 16/12/19 Пнд 15:16:15 154824799
>>1548039
>в школе21
имхо, если к вам в байтоебскую контору на тех собес через hr пробился челик с этих курсов, то лучшее что вы можете сделать для своей безопасности и безопасности своей конторки - это безапеляционно слить его в унитаз

Аноним 16/12/19 Пнд 17:41:19 1548372100
реквестирую код на шарпе, который будет менять бинд смены раскладки. то есть, с шифт-альта на ктрл-шифт. с меня как обычно нихуя
Аноним 16/12/19 Пнд 17:44:55 1548376101
F79556E7-7918-4[...].jpeg (54Кб, 500x350)
500x350
>>1548372
а ты к сикунам со своим шарпом
зачем пришел?
16/12/19 Пнд 20:40:05 1548578102
>>1548039
> принтфы всякие
Ну-ка притащи посмотреть %f, правильно реализованный новичком, у которого нет опыта и просто физически не может быть достаточно времени, чтобы разобраться с деталями.
Аноним 16/12/19 Пнд 21:03:51 1548617103
реквестирую картинку со списком программ которые нужны для практики прогроммирования, там еще разделение по цветам, уровень сложности типо, на черном фоне текст
Аноним 16/12/19 Пнд 22:00:10 1548704104
image.png (48Кб, 977x499)
977x499
>>1548578
Я бы так реализовал.
новичок, 9 месяцев опыта разработки на С
Аноним 16/12/19 Пнд 23:03:19 1548780105
>>1548704
Ты обернул вызов, мы вам перезвоним
Аноним 16/12/19 Пнд 23:32:39 1548837106
>>1548780
Но результат-то достигнут. В условиях не было запрета на использование стандартной библиотеки.
Аноним 17/12/19 Втр 00:16:37 1548900107
>>1548837
>В условиях не было запрета на использование стандартной библиотеки.
Ты даже постановку задачи не понял.
17/12/19 Втр 01:13:51 1548999108
>>1548837
> В условиях не было запрета на использование стандартной библиотеки.
> в школе21 с нуля сишную либу пишут
Аноним 17/12/19 Втр 03:43:56 1549029109
>>1548039
>в школе21
Этож сберкек. Они в этом своем сбербанке до 2010 (а то и дольше) сидели на ДОСе или каком-то досоподобном говне.
И даже щас у них юзеринтерфейсы изобилуют идиомами досовских времен, лол.

>с нуля сишную либу пишут
Это есть в книжке K&R
Аноним 17/12/19 Втр 08:06:17 1549051110
>>1548578
пишешь в гуголь github ecole 42 ft_printf и сосешь бибу
А как правильно реализовать - на длинной арифметике, траблы там нулевые, кроме этого
>>1549029
Программа французская, сбер в ней нихуя не может менять
Аноним 17/12/19 Втр 08:15:03 1549057111
изображение.png (15Кб, 312x295)
312x295
Аноним 17/12/19 Втр 12:18:54 1549198112
>>1549029
>до 2010 (а то и дольше) сидели на ДОСе
Ходил пару лет назад паспорт менять в стол, увидел оригинальный Midnight Commander на одном из компов, подохуел.
Аноним 17/12/19 Втр 12:21:16 1549203113
>>1549198
>Midnight
Norton офк, чет Штольман слишком глубоко в голову проник.
Аноним 17/12/19 Втр 13:57:13 1549358114
>>1548247
Чето я не понимаю, там же курсы для вкатоидов, и вроде они не так давно работают чтобы кто-то из тамошних реально получил квалификацию достаточную для того чтобы на техсобес попасть

>>1549051
блять ты даже не понимаешь насколько смешно выглядит то что ты пишешь. Ни один вкатоид, в какой бы ГеНиАлЬнОй школе он не "учился", не сможет реализовать что-то из стандартной библиотеки ДЕЙСТВИТЕЛЬНО на уровне стандартной библиотеки. Посмотри соусы в том же кланге и подумай как смешно выглядит то что ты говоришь.
>github ecole 42 ft_printf
вот эта хуйня это подтверждает.
Аноним 17/12/19 Втр 14:41:27 1549393115
>>1549203
А вдруг они поддерживают отечественного производителя и это был ВОЛКОВ?
Аноним 17/12/19 Втр 14:56:09 1549407116
>>1549393
Кстати, да, а нортон этот лицензионный? Может надо засудить эту шаражку?
Аноним 17/12/19 Втр 15:21:28 1549414117
>>1549393
>отечественного производителя
>Автор программы — украинский программист Всеволод Волков.

Молодой человек, пройдёмте с нами вон в ту комнату. У нас для Вас есть пара вопросов об исполнении федерального закона 44-ФЗ и в частности постановления правительства "Об утверждении плана по импортозамещению программного обеспечения” от 01.02.2015 № 96.
Аноним 17/12/19 Втр 16:31:12 1549449118
>>1549414
Я чет думал, что он был написан где-то в 90-91 годах, а не 92, так что да, заслужил.
Аноним 19/12/19 Чтв 02:34:27 1550642119
Как мне считать две строки, как я понел scanf для этого не подходит, пробовал баловаться через fgets с fflush чет нихера:
text1
text2
Аноним 19/12/19 Чтв 02:50:39 1550644120
image.png (21Кб, 424x313)
424x313
>>1550642
Жопу себе флашни, блядь. А fgets, в отличие от smashing-smahing-detected-gets, не вычитывает '\n'.
Аноним 19/12/19 Чтв 02:51:57 1550646121
stack-smashing
fix
Аноним 19/12/19 Чтв 02:58:51 1550647122
>>1550644
и вот почему такую банальную инфу не пишут в книгах? хуле я зря чейтал их нахой, и вот нахрен ты пишешь без дела
Аноним 19/12/19 Чтв 03:01:01 1550648123
15707413517420.png (1646Кб, 3840x2160)
3840x2160
Аноним 19/12/19 Чтв 03:07:35 1550649124
>>1550647
Да я рофлю, анон. А книги только путь указывают. Если ты предпочел не спрашивать совета в /b/, чтоб услышать, что Си не нужон, а таки решился на вкат, то предполагается достаточная самостоятельность, чтоб пробить man gets/fgets и все это уточнить. Что до пикрильского, это я намекнул, что твоя программа отвечает за удержание вывода, чтоб буфер флашить, а у тебя ВВОД. Он приходит с терминала (читай другой программы), и даже если у твоего процесса щечки покраснеют от ожидания, это не поможет, если терминал решил придержать stdin. Но по '\n' он 100% флашит, иначе ты бы свой код не скомпилировал даже, лол.
Аноним 19/12/19 Чтв 03:14:25 1550650125
image.png (978Кб, 750x842)
750x842
Ладно, тредик, прости, я был неправ. Больше не буду выебываться на ньюфагов.
Аноним 19/12/19 Чтв 05:48:14 1550666126
>>1550649
Что за бред. В той же консоли стандартная команда ввода в файл, печатай энтеров сколько влезет пока не нажмешь ctrl-z или как там.
Аноним 19/12/19 Чтв 14:51:43 1550938127
Аноним 19/12/19 Чтв 15:09:46 1550956128
>>1550649
Ну просмотрел стандартную либу си и решил на задачах отработать, но чет бомбанул (от того шо сам не разобралса) шо не смог прочесть две строки с переносом строки. Ща разберусь, спасибо
19/12/19 Чтв 15:49:39 1550999129
>>1550649
выёбываешься, щенок
Аноним 19/12/19 Чтв 16:12:51 1551009130
>>1550956
my fault, там не гетс \n вычитывает, но не пишет в строку
Аноним 22/12/19 Вск 13:19:35 1553635131
Ап мертвый тред
Аноним 22/12/19 Вск 15:00:48 1553716132
>>1553635
это же не жаваскрипт, ведь те макаки на каждый пук спрашивают
Аноним 22/12/19 Вск 15:13:17 1553727133
>>1553716
Ты чё несёшь ваще? Эти треды для того и есть, чтобы по теме общаться, спрашивать, рассказывать. Просто этот тред мертвый.
Аноним 22/12/19 Вск 15:24:01 1553741134
>>1553727
51 первый тред, у яваскрипта 150-й
показывает, шо сишники самодостаточные интроверты, песдуй на кухню если хочешь общения
Аноним 23/12/19 Пнд 03:25:43 1554303135
>>1553727
Флуд дебилизмом только привлекает еще больше дебилов, а нормальные люди от этого уходят. В результате смерть треда, остаётся зомби только профитный хостеру, ведь ему главное количество посещений и постов, а на качество похуй.
Аноним 23/12/19 Пнд 03:42:35 1554307136
Кто-то может вкатиться и объяснить о синхронизации в Си либо кинуть какие-то референсы на данную тему?
23/12/19 Пнд 20:13:55 1554941137
>>1554307
Лучше возьми APUE и почитай сам. Потом на threads.h можешь глянуть.
Аноним 24/12/19 Втр 16:53:31 1555613138
>>1554941
>thread.h
Каждый раз триггерюсь с этой glib. Вот почему всякие strchrnul, tsearch и прочие расширялки завезли, а C11 хуй? Только в 2.28, на которую пинус еще не переехал, и хрен ты кому в Си-треде pastebin с этими thrd_create скинешь, чтоб он cc сделал без установки второй версии?
27/12/19 Птн 21:34:48 1559134139
Откуда появился мем типа си не ооп язык, если си существует исключительно в ООП парадигме?
27/12/19 Птн 23:28:23 1559213140
>>1559134
Не исключительно. И очевидно потому, что в си нету сахарка на этот счет.
Аноним 28/12/19 Суб 00:35:10 1559261141
>>1559134
Оттуда же, откуда
>в Си нет многопоточности
ну лол же. Таким тупорылым обмудкам в лицо плевать, или игнорить, если физическое лицо вне досягаемости.
28/12/19 Суб 04:05:15 1559331142
>>1559134
Ниоткудв. Придумать мем и спиздануть что он появился недостаточно.
Аноним 28/12/19 Суб 10:03:19 1559396143
>>1559213
>Не исключительно
исключительно
>нету сахарка
есть. Просто его меньше, и бойлерплейта по умолчанию тоже меньше.

Да и сахарок - это в основном про ньюфагов. Однако не только ньюфаги, а иногда и люди, даже писавшие больше 20 строк кода на си, почему-то продвигают этот миф.

>>1559331
не понял тебя

Аноним 28/12/19 Суб 10:23:55 1559407144
>>1559134
>си существует исключительно в ООП парадигме
>>1559396
>исключительно

Что ты имеешь ввиду под "исключительно"?
Если ты думаешь что повсеместное использование структур это и есть ООП, то это глубокая ошибка.

Мимопроходил
Аноним 28/12/19 Суб 13:01:45 1559487145
>>1559134
>си существует исключительно в ООП парадигме
Раскрой свою мысль поподробней.
Аноним 28/12/19 Суб 13:12:04 1559490146
>>1559134
Доступ к полю структуры через точку это не ооп парадигма, это сиподобный синтаксис. Ты вообще знаешь что такое указатель? В си нет объектов, они появляются в расширенных си, таких как Objective-C и C++. А вообще объекты перед этим появились далеко не в С а в SmallTalk, на его основе был выпущен Objective-C, а потом уже и C++
Аноним 28/12/19 Суб 13:21:56 1559496147
>>1559134
Чистое ООП предполагает полную инкапсуляцию состояния объекта и взаимодействие с ним исключительно посредством интерфейса. На Сишечке это элементарно реализуется (void ∗), но писать только такой код означает делать такую же строгую и неповоротливую архитектуру, как можно на любом более высокоуровневом языке в меньше строк, то есть лишено смысла. Си нужен для стрельбы по ногам, и поэтому практически все, что на нем написано и реально использует его преимущества, нарушает принципы ООП.
Аноним 28/12/19 Суб 13:47:09 1559518148
>>1559134
Троллинг тупостью? Си это процедурный язык без поддержки объектно ориентированной парадигмы.

мимо олд 7 лет на сишечке
28/12/19 Суб 22:09:46 1559938149
>>1559496
> Чистое ООП предполагает полную инкапсуляцию состояния объекта
Мало ли где там что предполагает. С этой точки зрения кресты, которые требуют все кишки класса обязывают выставлять наружу в .hpp - это вообще не ООП-язык. В то же время сишка позволяет incomplete-структурами это состояние успешно скрывать.
Аноним 29/12/19 Вск 06:14:54 1560103150
Это ебанутых проектов тред? Хочу написать свой каунтер чисто на битовых операциях. Двач, побудь моей уточкой.

Считать будем в произвольном куске памяти. Как я себе это представляю.
Смотрим поледний бит,
Текущий бит:
если 0, то меняем его на 1 и закончили
если 1, то меняем его на 0, двигаемся влево, гото Текущий бит

Вы пока отвечайте, а я подробнее распишу.
Аноним 29/12/19 Вск 06:21:21 1560104151
>>1560103
Если подробнее
Стартуем:
ставим курор на крайний правый бит (с = 0х1)
Начинаем считать:
Сравниваем текущий бит с 1 ((b & c) == c)
если он 0, то переключаем его (b ^= c) и заканчиваем
если он 1, то переключаем его (b ^= c), двигаем курсор (с<<=1) влево и гото Начинаем считать.
Аноним 29/12/19 Вск 06:28:35 1560105152
Аноним 29/12/19 Вск 06:31:48 1560106153
>>1560105
Ан, нет. Числа растут, но повторяются, где-то ещё ошибка.
Аноним 29/12/19 Вск 06:33:04 1560107154
>>1560106
printf надо тоже убрать в else.
Аноним 29/12/19 Вск 07:28:06 1560110155
Стикер (319Кб, 512x512)
512x512
Так, а битовые операции с произвольными кусками памяти нельзя проводить что ли? Эх, а я-то думал...
Аноним 29/12/19 Вск 08:23:58 1560118156
>>1560110
Как нельзя? Почему нельзя?

char c[128];
long ∗p = (long∗) &c;
for(int i = 0; i < 128/8; ++i) {
∗p &= 0x7F7F7F7F7F7F7F7F;
p++;
}

Код выше, к примеру, применяет битовый AND (И) по отношению к массиву чаров (по 8 байт/чаров за раз). Если конкретнее - очищает старший бит каждого байта.
Аноним 29/12/19 Вск 08:49:20 1560120157
>>1560118
>по отношению к массиву чаров
Ну так я и говорю, что вопрос в произвольных кусках. Например, шифтануть влево на два байта 3000-битное число. Понятно, что его можно разбить на массив и двигать по кускам, но я надеялся, что руками этого делать не придётся.
Аноним 29/12/19 Вск 09:10:02 1560125158
>>1560120
Так зачем руками-то? Напиши функцию. В Python и Haskell к примеру, есть шифт битов в числах произвольного размера, но работы с памятью нет, да и скорость работы этих возможностей далеко не потрясающая (в питухоне особенно, на небольших числах даже умножение дороже шифта битов). Алсо учитывай, что работать удобно сможешь только с числами, кратными байту, а та же функция на ассемблере будет не намного сложнее (если ты, конечно, знаешь x86-64), но в разы эффективнее.
Аноним 29/12/19 Вск 09:10:55 1560126159
>>1560125
>дороже
Дешевле

быстрофикс
Аноним 29/12/19 Вск 09:17:05 1560129160
>>1560125
Даже функции потребуют использования обычных чисел, а я хотел этого избежать. Вон выше, произвольный счётчик пытался сделать исключительно на битовых операциях, но он ограничен самым длинным целочисленным типом, хотя в самой архитектуре счётчика я этого ограничения не вижу, можно просто ползать влево-вправо по битам и всё. Хотел расширить до работы с произвольным отрезком памяти.
Аноним 29/12/19 Вск 09:25:06 1560130161
>>1560110
Если я правильно тебя понял - бери ассемблер&лови сегфолты.
Аноним 29/12/19 Вск 09:36:12 1560131162
>>1560130
Сегфолты предполагались. Просто пытался понять, достаточно ли сишка низкоуровневая, чтобы настолько с битами играться, но, судя по всему, для такого необходимо городить огороды из массивов, чем заниматься не хочется. Финальная идея была в том, чтобы в лоб побитово производить всякие большие математические операции, типа умножить 200 значное число на 300 значное. Посмотреть, как современные процессоры с таким справляются.
Аноним 29/12/19 Вск 09:38:12 1560132163
>>1560129
Смотри, на чистой архитектуре x86 нет опкодов для работы с числами большей битности, чем машинное слово этой архитектуры, так что под капотом без извращений это по другому реализовать не выйдет. На ассемблере можно, конечно, было бы поизвращатся со всякими там AVX, но это тоже не универсальная оптимизация. Вообще не понимаю твоего бугурта, т.к. функции подобного плана без оптимизаций пишутся достаточно быстро, разве что ты хочешь вообще все битовые операции подобным образом реализовать, и ещё для не byte-aligned по длинне чисел к тому же.
Аноним 29/12/19 Вск 09:48:06 1560135164
>>1560132
Никакого бугурта, друг, спасибо за то, что отвечаешь. Просто пытаюсь нащупать "границы" сишечки.
Аноним 29/12/19 Вск 10:05:16 1560137165
>>1560132
>разве что ты хочешь вообще все битовые операции подобным образом реализовать, и ещё для не byte-aligned по длинне чисел к тому же
И да, хочу. Это же можно сделать, правильно? Понятно, что на конкретном железном процессоре просто так взять и крутить биты не выйдет, он воткнётся в ограничение длины своего машинного слова, это ты правильно заметил. Но вообще, это же реализуемо, верно? Вот я попробовал просто напрямик это написать на C, но был ограничен размером базового типа, а значит нужно их компоновать несколько, то есть усложнять программу, а вся идея была как раз в том, чтоб программа была самая тупая.

Я рассчитывал, что просто напишу, как хочу изменять память, а компилятор уже разберётся, как это делать кусками, удобными процессору.
Аноним 29/12/19 Вск 10:21:03 1560139166
>>1560135
Понял. Тащемта сишечка на таком низком уровне все-таки неплохо ограничивает, особенно в плане всяких микрооптимизаций и расширений архитектур x86 по типу SSE. Да и вообще для не битовых операций нужно будет на C дикие костыли городить, а тот же результат умножения на уровне ассемблера помещается в пару регистров (фактически промоутит число до количества битов в 2 раза большего), что уже позволяет набросать более эффективный алгоритм. Вообще, если в проде будешь подобное использовать, и лень будет изобретать велосипеды (т.е. производительность не важна будет) - во всяких там Java и C# есть BigInteger с переопределенными операторами, не говоря уже о всякой функциональщине.

>>1560137
Для простых битовых операций (and, or, xor) тебе достаточно просто пройтись по всему числу, применяя оператор к каждому из участков памяти, а остаток без alignment замаскировать and после. А дальше - веселее, даже для шифта битов тебе придется что-то интересное придумывать, а на не битовых операциях уж тем более без интересных алгоритмов никак не обойтись.
Аноним 29/12/19 Вск 11:02:52 1560148167
>>1560139
>Да и вообще для не битовых операций нужно будет на C дикие костыли городить
Так в том и задача, сделать как можно больше через битовые операции над памятью.
> а тот же результат умножения на уровне ассемблера
Я его планировал сделать через битовое сложение. Собственно, для этого счётчик и нужен был, чтобы определять, когда остановиться. Повторюсь, интересно сделать как можно более тупую программу, самый минимум. И для умножения я ничего тупее, чем сложение и счётчик не придумал. Вот начал со счётчика и воткнулся.
>во всяких там Java и C# есть BigInteger с переопределенными операторами
Так любая криптобиблиотека для сишки это уже BigInteger. Не говоря уже о всяких специальных, вроде gmp. И, полагаю, они там уже давно таких оптимизаций наделали, до которых мне годы раздумий.

> А дальше - веселее, даже для шифта битов тебе придется что-то интересное придумывать
Всё так. Но я не хочу придумывать интересное, ради обхода ограничений языка. Не в этом моё желание.
29/12/19 Вск 21:39:26 1560576168
>>1560139
> Да и вообще для не битовых операций нужно будет на C дикие костыли городить
Посоны-то не знают, и пишут длинную арифметику именно на сишке.

>>1560148
> битовые операции над памятью.
Ты какой-то хуйней страдаешь. Битовые операции не нужны, достаточно обычных операций над массивом uint_fast32_t.

> для умножения я ничего тупее, чем сложение и счётчик не придумал
В столбик в школе считать учили?
Аноним 29/12/19 Вск 21:48:16 1560583169
>>1540431 (OP)
Не совсем по C вопрос, но, тащемто, связанный с выполением заданий из K&R.

Как отключить построчную буферизацию в терминале? Ubuntu 18.04, bash.

unbuffer и stdbuf -i0 -o0 -e0 не работают.

А то пошел K&R проходить по порядку перед сессией после семестра гвидопыха, ибо гвидолабы сданы на отл. обгвидку-преподавателю, чтобы повторить основы теор. курса с нормальным языком в руках, а тут такие неприятные мелочи.
Аноним 29/12/19 Вск 21:53:51 1560592170
>>1560583
Разве возможно отключить буферизацию stdio.h извне? Сделай setbuf(stdout, NULL); или fflush(stdout)
подписался на тред
Аноним 29/12/19 Вск 22:00:00 1560605171
какую программулину написать на сишечке для диплома бакалавра?
Аноним 29/12/19 Вск 22:01:22 1560607172
Аноним 29/12/19 Вск 22:03:59 1560611173
>>1560605
Программируемый драйвер клавиатуры.
Аноним 29/12/19 Вск 22:20:31 1560626174
>>1560611
и насколько это актуально? типо мемранки программировать? для diy обычно сами на ардуино лепят
Аноним 29/12/19 Вск 22:21:14 1560627175
external-conten[...].gif (2987Кб, 805x451)
805x451
>>1560576
>Посоны-то не знают, и пишут длинную арифметику именно на сишке.
Так, давай не путать посонов, которые пытаются что-то полезное сделать, и меня.
>Ты какой-то хуйней страдаешь.
Это очевидно.
>В столбик в школе считать учили?
Так, а чем принципиально умножение в столбик отличается от, так сказать, обобщённого умножения? 3 на 5 умножить, и 42154352345 на 3467645645745 для меня одно и то же.

>Битовые операции не нужны

Так, я пожалуй объясню, что я пытаюсь сделать с нуля. Представь себе человека, который вообще ничего не знает о математике и, тем более, программировании. Даже таблицу умножения. и ты его учишь, начиная с двоичной системы счисления. Мне попался хороший ученик в виде компьютера, он уже понимает, что такое 0х0, 0х1, =, ==, ^, <<, и &. И я хочу из этого научить его считать. Для начала просто считать вверх, что я относительно успешно реализовал, учитывая ограничения C.

Но именно этого я и не хочу, я не хочу учитывать ограничения С, я хочу просто менять биты в памяти. Не в беззнаковом целом, не в массиве чаров, и даже не в структуре или битовых полях, а просто в куске памяти. Хочу просто бинарную математику, а не ограничения в длину слова процессора или базовые типы.

Понятно, что я могу это реализовать просто в виде операций над строками, написать свои реализации 0х0, 0х1, =, ==, ^, <<, и & для '0' и '1', но это получится пикрелейтед, не уверен, что я этого хочу.
Аноним 29/12/19 Вск 22:27:14 1560631176
30/12/19 Пнд 02:45:18 1560781177
>>1560627
> просто менять биты в памяти
Ты не можешь менять биты в памяти, ни просто, ни сложно разве что row hammer какой-нибудь притащишь, и это, наверное, единственный рабочий способ менять именно биты в современных компах. Процессор читает/пишет память даже не байтами, и не двордами, а целыми кэшлайнами. Даже сама DRAM не читает по одному биту.

Но я понял, чего ты хочешь, и думаю, что тебе нужна не сишка, а какой нибудь digital circuit simulator, вот там ты развернешься. Можешь, например, в nandgame.com поиграть, оно как раз для тебя. А когда наиграешься, вернешься в сишку реализовывать арифметику не в base-2, а в base-232.

> Так, а чем принципиально умножение в столбик отличается от, так сказать, обобщённого умножения?
Ну я так понял, что ты сейчас просто суммируешь первый множитель n раз. Это медленно. А вот если ты попытаешься двоичные числа умножить в столбик, как в школе, ты получишь log(n) уже (и это не самый быстрый способ). С бумажки на комп этот алгоритм переносится очевидным способом: если очередной (от младшего к старшему) бит второго множителя равен единице, ты прибавляешь первый множитель к результату, если равен нулю - не прибавляешь. А потом сдвигаешь первый множитель влево на один бит и повторяешь.
Аноним 30/12/19 Пнд 04:26:17 1560799178
>>1560781
>Процессор читает/пишет память даже не байтами, и не двордами, а целыми кэшлайнами. Даже сама DRAM не читает по одному биту.
Я от этого пытался абстрагироваться при помощи сишки. Но сишка слишком близка к железу, а остальные языки слишком далеки от битов.
>digital circuit simulator
> nandgame.com
Спасибо, посмотрю.
>ты сейчас просто суммируешь первый множитель n раз. Это медленно.
Да. Я понимаю. Но хотел в начале обойтись как можно меньшим числом концептов. Любому очевидно, что счётные палочки для первоклассников гораздо медленнее, чем множество других способов, но начинают всё равно с них.
Аноним 30/12/19 Пнд 13:23:33 1560934179
>>1560799
Биты близко к железу, когда же далеко от железа биты не нужны. Таким образом, не бывает близко к битам и далеко от железа.
Аноним 30/12/19 Пнд 13:24:58 1560935180
Стикер (255Кб, 512x512)
512x512
>>1560934
Это и есть моя проблема!
Аноним 30/12/19 Пнд 14:10:15 1560965181
как решить какуро без бинарного дерева, никто не знает? я тян, пруфов не будет.
Аноним 30/12/19 Пнд 16:08:22 1561060182
Учу C по книге Stephen Prata "C Primer Plus, 6th Edition" (2014) страниц 300 прочитал, упарился уже весь и мой внутренний голос коварно говорит мне:
бросай это дело, всё равно ничего не выйдет

Есть ли вообще смысл учить язык C в маленьком областном центре если мне уже почти 33?
Аноним 30/12/19 Пнд 16:18:26 1561068183
>>1561060
Там дальше интереснее.
Аноним 30/12/19 Пнд 17:33:52 1561196184
15768420737950.jpg (46Кб, 620x620)
620x620
>>1561060
>всё равно ничего не выйдет
Хуевый у тебя внутренний голос, он так тебе по любому новому делу говорит? Я вот в электротехнику на старости вкатываюсь, вот там жесть-пиздец, заливаю внутренний голос пивасом и потихоньку иду дальше.
Аноним 30/12/19 Пнд 18:03:12 1561218185
>>1561060
хочешь - учи, не хочешь - не учи. какой еще "смысл"? если вкатиться в ойти, съебать из мухосрани и начать зарабатывать 300кк/сек, то сишечка этому способствует больше, чем бухать с друзьями, гулять на природе и вести полноценную жизнь быдла. но если ты ожидаешь вкатиться не выучив ничего, кроме сишечки, то в 2к19 у этого охуенно маленькие шансы. я советую не сдаваться и идти к цели, особенно в плане навыков, которые денег не стоят и другим людям не мешают.
Аноним 30/12/19 Пнд 18:03:32 1561219186
>>1561196
Я так то уже 3 года и 2 месяца вкатываюсь, если считать с момента когда я впервые эту книгу читать начал. Вот летом в 20-х числах июля решил жёстко взяться. Почти полгода прошло, а я только 300 страниц одолел. Вот и начали меня одолевать смутные сомнения, на фоне полного отсутствия соответствующих вакансий в моём городе. Я как то ожидал большей от себя скорости, но то ли я тупой, то ли книга написана так чтобы дочитать её до конца смогли не только лишь все
Аноним 30/12/19 Пнд 18:13:56 1561232187
>>1561219
>соответствующих вакансий
Так учи то, что востребованно, Джаву например, она С++ на минималках.
Аноним 30/12/19 Пнд 18:32:35 1561248188
>>1561218
Да как то дел с вот этим "вкатиться в ойти" всё нарастает и нарастает. Сначала я начал читать книгу, потом решил что и английский знать надо и взялся за курс на дуолинго. Потом решил что в книге маловато упражнений и добавил курс С на степике. Потом заметил что в книге как то совсем не объясняются возможности современных IDE. Да и вообще спецы рекомендуют командную строку линукс и вим. А там ещё прочитал что постоянное переключение взгляда с экрана на клавиатуру быстро утомляет и надо научиться слепой печати и как то это всё прямо снежным комом нарастает
Аноним 30/12/19 Пнд 18:37:12 1561251189
>>1561248
Ну с С вкатиться в айти нельзя, разве что сразу с него на пхп перескочить, вакансий для вкатывальщиков нет. Имеющиеся это наверняка НИИ, где сам С дело десятое, а главное матеша.
Аноним 30/12/19 Пнд 18:42:06 1561255190
>>1561248
>переключение взгляда с экрана
Ээээ, ты там двумя пальцами печатаешь? Лол. У нас был ведущий инженер, старый пидор с бородой, он двумя указательными пальцами печатал глядя на клавиатуру, мнил себя гуру ИТ, а раньше был геологом, пока их контору к хуям не разогнали, да.
Аноним 30/12/19 Пнд 18:44:30 1561260191
>>1561251
Да я как ступеньку С расценивал. Типа план себе как мне показалось хороший составил:
-язык Си (курс Степик, Прата, К&R)
-ассемблер (курс Степик)
-язык Си++ (два курса Степик, Страуструп)
-алгоритмы и структуры данных (два курса Степик)
А потом уже с наработанным знанием и пониманием вышеизложенного за что то более близкое к наличным вакансиям браться
Аноним 30/12/19 Пнд 18:46:26 1561263192
>>1561255
Не двумя, но и не десятью. Не глядя на клавиатуру вообще печатать не могу. Судя по тому что за клавиатурой я уже более 12 лет сам собой навык слепой печати у меня не появится
Аноним 30/12/19 Пнд 19:33:00 1561305193
>>1561260
Там бесплатные курсы? Дай ссылки пожалуйста.
Аноним 30/12/19 Пнд 19:34:00 1561309194
image.png (72Кб, 622x491)
622x491
>>1561248
>надо научиться слепой печати
С сегодняшнего дня выдели 15 минут в день на это. Я вот, например сейчас учу её. Трачу 15 минут в день. За месяц поднялся с ~80 символов в минуту до ~160. Ничего сложного не, главное заниматься постоянно. Это ещё учитывая, что я максимум бездарь.
Аноним 30/12/19 Пнд 19:44:58 1561323195
Аноним 30/12/19 Пнд 19:47:34 1561326196
>>1561248
>слепой печати
Зачем? Большую часть пишет за тебя иде, бойлерплейт нормальные люди генерируют на питоне/перле/т4 что ближе.
>>1561251
>Ну с С вкатиться в айти нельзя
У нас железячники только на нем и пишут, навигационное оборудование.
мимокрестовик
Аноним 30/12/19 Пнд 20:16:02 1561361197
image.png (219Кб, 583x929)
583x929
>>1561323
А сам курс какой? Я не могу ассемблер найти.
Аноним 30/12/19 Пнд 20:17:31 1561366198
>>1561260
>ассемблер (курс Степик)
>алгоритмы и структуры данных (два курса Степик)
Нинужна, ты в отрыве от реальных задач ни хуя не поймешь
Аноним 30/12/19 Пнд 21:16:08 1561450199
>>1561361
Я сам только такой нашёл: https://stepik.org/course/253/reviews Я просто предположил что курс по ассемблеру там есть, или появится за то время которое я потрачу на си
Аноним 30/12/19 Пнд 21:26:05 1561462200
image.png (193Кб, 379x385)
379x385
>>1561263
нужно ПРОСТО не смотреть. если не делаешь себе постоянный челлендж, то нихуя не научишься. равно как смотреть кинцо с оригинальной озвучкой, но с сабами - нихуя не поможет, если ты постоянно сабы читаешь. нельзя 12 лет с тренировочными колёсами ездить и потом жаловаться, что ты не научился на велосипеде держаться.
Аноним 30/12/19 Пнд 21:44:47 1561483201
>>1561450
Благодарю, анончик.
Аноним 30/12/19 Пнд 23:47:31 1561589202
>>1561462
Ну я ж научился, лол. Заметил, что колесики висят в воздухе, снял, поехал дальше.
>>1561309
Что за прога?

Мимо
Аноним 31/12/19 Втр 00:14:39 1561602203
>>1561589
а я сразу взял и поехал, спасибо маме за айкью
Аноним 31/12/19 Втр 00:36:28 1561609204
Аноним 31/12/19 Втр 12:33:49 1561747205
>>1561309
По-моему, надо просто заставлять себя нажимать каждую клавишу правильным пальцем, необязательно вслепую, но всегда, в любом повседневной печати, большого перерасхода времени не будет. Только поначалу идет медленнее, чем 2-пальцевый набор, как на печатной машинке, но очень скоро привыкаешь и понимаешь, что так НАМНОГО быстрее. А глаза сами перестанут смотреть на клавиатуру.
Аноним 31/12/19 Втр 16:12:08 1561822206
>>1561309
Я уникальный долбоеб - двупальцевая слепая печать. Лол.
Мимо
Аноним 31/12/19 Втр 16:15:52 1561826207
image.png (51Кб, 666x366)
666x366
>>1561747
умею печать вслепую, но не умею в правильные пальцы. обычно недоиспользую указательные и мизинцы. мне кажется, это важно, но не самое главное для умения не смотреть на клавиатуру.
Аноним 31/12/19 Втр 16:34:48 1561829208
>>1561822
>>1561826
просто так проще "глаза закрыть", потому что не надо плечами работать, а все маленькие группы клавиш развязаны в мозгах по своим пальцам, и нехуй запоминать особо
Аноним 31/12/19 Втр 17:21:28 1561852209
>>1561309
>>1561747
>>1561826
Советую всем сайт ratatype, максимально удобный. Сам я печатаю ~300 символов с 5% ошибками 3-5 пальцами, но пальцы пиздец как устают. За неделю осилил слепую печать всеми десятью, ~150 символов и 1% ошибок, руки почти не напрягаются. Думаю за пару месяцев на те же 300 выйду.
Аноним 31/12/19 Втр 21:58:46 1562068210
сап сишники с нг,вопрос к вам
есть двухмерный массив(ака матрица),надо узнать какие числа повторяются больше трех раз,и при этом находятся в разных столбцах
например в матрице 1 2 3 4
1 3 1 3
5 3 4 5
это число 3
с меня как всегда нихуя :3
Аноним 31/12/19 Втр 21:59:37 1562071211
>>1562068
1 2 3 4
1 3 1 3
5 3 4 5
проебался чутка
Аноним 31/12/19 Втр 22:25:08 1562100212
>>1562071
Массив не ограничен по ширине/высоте?
Аноним 31/12/19 Втр 22:25:32 1562101213
>>1562068
>матрице
Она в памяти ленейно, бежишь по указателю и сравниваешь.
Аноним 31/12/19 Втр 22:27:33 1562105214
>>1562071
А если один раз встречается два раза в ряду, то это значение уже не может считаться, или даже если встречается больше 3 раз по одному, но один раз — два раза, то все равно считается? Я пьяный если что извини если не понятно
Аноним 31/12/19 Втр 22:34:02 1562115215
>>1562068
Счетчик для каждого числа. Ну, не для всех 18 секстилионов сразу, конечно, а по разрядам идешь. 256-элементный массив, который запоминает, во скольких разных колонках встречаются числа, начинающиеся на байт 0x00, во скольких - 0x01, ..., а во скольких - 0xff. Сразу выкидываешь все, что не дотягивает, и рекурсивно идешь по отобранным, считая уже вторые байты. Ну, можешь сразу по 2 байта брать, тогда массив 65536, сам смотри, сколько у тебя памяти. Глубина рекурсии больше 8 не будет. Хотя, может быть большой флоат, там кстати тоже все вполне дискретно. Пробуй, анон. Ничего лучше за 5 минут не придумал.
Аноним 31/12/19 Втр 22:46:53 1562131216
>>1562068
для каждого символа алфавита делаешь аррей длиной равной длине строки, проходишь по строкам и отмечаешь в новых арреях появление соответствующего символа. потом просто ищешь арреи, в которых больше трех ячеек отмечено.
Аноним 01/01/20 Срд 01:44:07 1562216217
>>1562100
[5][6]
но желательно на неограниченный
>>1562101
знаю,но мой тупой мозг не понимает как это сделать
>>1562105
может,считается как одно значение
>>1562115
пасиба но сложна,мой ньюфажий мозг расплавился
>>1562131
пасибо попробую

типо например тут ответ будет 3 и 6
{6,>3,8,0,0,5}
,{>6,>6,5,7,8,4}
,{4,5,6,>6,1,7}
,{0,4,>3,2,5,0}
,{0,8,7,>3,2,8}
Аноним 01/01/20 Срд 02:01:20 1562221218
>>1562068
Какие-то ограничения по наполнению массива есть? Могут быть отрицательные, дробные?
Аноним 01/01/20 Срд 02:48:22 1562244219
>>1562221
синайлы как обычно хотят байтоебствовать и сдвигать разряды. общий алгоритм пиши для произвольного содержимого, для которого определена операция равенства.
Аноним 01/01/20 Срд 02:49:29 1562246220
>>1562244
Хочу сдвигать разряды, и ты мне не помешаешь!
Аноним 01/01/20 Срд 02:58:18 1562247221
Аноним 01/01/20 Срд 09:14:38 1562286222
>>1562244
>синайлы
Тупорылый даун, зачем ты используешь англицизмы, ты, что, крэйзи?!?!?
Аноним 01/01/20 Срд 09:56:03 1562294223
По умолчанию при объявлении целочисленной переменной без указания спецификатора signed/unsigned, переменная будет signed или unsigned типа? Регламентируется ли это стандартом? Зависит ли это от реализации?
Аноним 01/01/20 Срд 12:10:01 1562319224
image.png (123Кб, 647x943)
647x943
>>1562294
Вот тебе скрин из стандарта. Каждый пункт содержит идентичные объявления.

Если вкратце, то char зависит от реализации, а остальные по умолчанию signed
Аноним 01/01/20 Срд 14:27:25 1562369225
>>1562286
беторды на бордах всю жизнь пиздили англицизмы, ньюфаг. а вообще потому что я не знаю русских аналогов и вместе с тем ожидаю, что пипл, посещающий данный сайт, способен меня андерстенд без того, чтобы я снисходил до кальки или адаптирования.
Аноним 02/01/20 Чтв 00:21:55 1562642226
>>1540444
Зачем вообще const, если есть define?
Аноним 02/01/20 Чтв 01:15:31 1562660227
>>1562642
Конст в объявлении параметра функции говорит о том, что функция не будет менять то, что лежит по указателю, например. При чем тут дефайн? Ты говоришь про константы в терминах маш.кода (адресные операнды, регистровые и константы), а тут документационный смысл.
Аноним 02/01/20 Чтв 03:43:28 1562702228
>>1562642
Чтобы не плодить копии.
Аноним 02/01/20 Чтв 04:39:07 1562720229
>>1562642
Зачем вообще define, если есть enum?
Аноним 02/01/20 Чтв 11:41:21 1562789230
>>1562720
макросы с дженериками
Аноним 02/01/20 Чтв 15:32:25 1563022231
изображение.png (4Кб, 934x74)
934x74
Как правильно написать вот это упражнение, а то мне кажется что я написал хуйню https://pastebin.com/Kp9Kgdkd
Аноним 02/01/20 Чтв 15:40:57 1563037232
>>1563022
>а то мне кажется что я написал хуйню
Всё так.
>for(int i = 0; c == ' ' && i != 1; ++i) putchar('\b');
Эта строка вообще ничего не делает, если что.
Аноним 02/01/20 Чтв 16:04:26 1563079233
>>1563037
она забивает пробелы, если их больше одного
Аноним 02/01/20 Чтв 16:20:01 1563104234
>>1563079
Ну давай посмотрим, что она делает:
i = 0;
проверяет c == ' ' && i !=1; //тут виноват, я прочитал там ==
Если да, то стирает последний символ. Так как пробел мы ещё не напечатали, то это предыдущая буква. Поднимает i на 1; Возвращается к началу цикла for. Проверяет c == ' ' && i !=1. Так как i тут всегда 1, то дальше она ничего не делает.
Если нет, то просто заканчивает for и ничего не делает;

Дальше печатает сохранённый пробел. Возвращается к началу цикла while;
i = 0;
проверяет c == ' ' && i !=1;
Здесь она сотрёт предыдущий пробел, это правда. Но буква уже стёрта то есть for не ничего не делает, а портит, а цикл for никогда не повторяется больше одного раза. Зачем тогда цикл?
Аноним 02/01/20 Чтв 16:41:14 1563126235
Аноним 02/01/20 Чтв 16:51:30 1563144236
Аноним 02/01/20 Чтв 16:54:31 1563153237
>>1563126
Это сработает. Но у тебя 3 if'а в которых ты проверяешь на одно и то же условие. Скомбинируй их в одно. Можешь сделать сам, а потом сравнить со спойлером
https://pastebin.com/TrXzqzRM

Ещё твоя конструкция развалится, если, например, использовать 10 миллиардов пробелов, а условия это не ограничивают. И постоянная печать, а потом удаление тоже странное решение, не проще изначально не печатать?
Аноним 02/01/20 Чтв 16:58:56 1563162238
изображение.png (6Кб, 329x252)
329x252
>>1563153
> не проще изначально не печатать
Вот так?
Аноним 02/01/20 Чтв 17:13:55 1563176239
>>1563162
Да. Но это всё ещё не решило вопрос с неприличным числом пробелов.
Аноним 02/01/20 Чтв 17:17:58 1563181240
>>1563176
Можно просто выходить из цикла по достижении некоторого их числа.
Аноним 02/01/20 Чтв 17:20:21 1563183241
>>1563181
Тогда тебе нужно делать ещё одну проверку. Не проще их изначально не считать? Тебе же не важно, сколько их было, 3 или 12000? Тебе важно только был ли предыдущим символом пробел.
Аноним 02/01/20 Чтв 17:31:15 1563200242
Аноним 02/01/20 Чтв 17:47:37 1563211243
>>1563200
Например так, да. Но я бы сделал с помощью флага, чтобы не перекладывать каждый цикл переменную.
Аноним 03/01/20 Птн 03:51:50 1563573244
Аноним 03/01/20 Птн 04:44:43 1563579245
>>1563573
Один for для единственного прохода цикла разворачивает, второй switch для единственного условия. Зачем вы это делаете?
Аноним 03/01/20 Птн 04:48:23 1563580246
Аноним 06/01/20 Пнд 17:28:34 1566328247
15782728864220.jpg (29Кб, 600x476)
600x476
Хочу написать автокликер клавиатуры для одной ммо дрочильни, но у этой игры, похоже, есть защита. На текущий момент смог написать только вялый sendinput, используя скан-коды клавиш, который отрабатывает только пару раз, после чего игра перестает их обрабатывать, пока я сам не нажму любые клавиши. После чего картина повторяется. Текущий код: https://pastebin.com/MzzFXeZm

Что можно придумать? Нашел тему с аналогичной проблемой https://stackoverflow.com/questions/18647053/sendinput-not-equal-to-pressing-key-manually-on-keyboard-in-c
В самом низу есть обсуждение под ответом от Eric Brown, он пишет:
>That implies that the game may well be using DirectInput. Injection might still be possible, but is much harder; you need to open the raw keyboard device and send some IOCTLs to inject raw scan codes. I'm not that familiar with these APIs, so you're on your own...
Но я что-то не понял нихера его. Хз, мб от этого как-то оттолкнуться можно? Или есть другие решения?
Аноним 07/01/20 Втр 02:46:07 1566603248
15782520912920.jpg (123Кб, 484x591)
484x591
На что ругается компилятор?
структура формата {uint8_t (hour), uint8_t(minute), uint8_t(second)}
Аноним 07/01/20 Втр 02:51:25 1566604249
>>1566603
и почему он не ругается на это:
if ((time_heater_delay_gap.watch.hour && time_heater_delay_gap.watch.minute && time_heater_delay_gap.watch.second))

немощный компилятор не может работать с структурами в логических операциях, только с элементами?
Аноним 07/01/20 Втр 04:21:21 1566616250
>>1566603
Ты там структуру чтоли сравниваешь?
Аноним 07/01/20 Втр 05:01:16 1566617251
>>1566604
> не может работать с структурами в логических операциях
включи режим плюсов и допиши оверлод оператора==
ты блядь как будто не знаешь в какой язык ты пришел
Аноним 07/01/20 Втр 05:10:05 1566619252
>>1566604
> с структурами
справа у тебя кстати не структ, ты просто надеешься на имплицитную конверсию
Аноним 07/01/20 Втр 09:45:39 1566639253
>>1566328
Что за дрочильня? Обход античита это тот ещё рокетсаенс
Аноним 07/01/20 Втр 10:34:59 1566642254
33.mp4 (12534Кб, 300x360, 00:01:48)
300x360
>>1566328
Не можете? Беда, беда
Аноним 07/01/20 Втр 10:44:39 1566644255
Screenshot70.jpg (157Кб, 1263x922)
1263x922
>>1566328
Чтобы совсем красиво было надо хук использовать, но тогда антивирус срабатывает. Потому что..
а раскладку кто переключать будет? А спец символы итд итп
Аноним 07/01/20 Втр 11:44:51 1566661256
>>1566603
Поехавший, любой конпелятор сей не позволяет это делать, потому что ты долбоёб.
Если там одни целые и ты 100% уверен, что структуры хранятся одинаково - можешь сравнивать через memcmp()
Аноним 07/01/20 Втр 11:46:51 1566665257
>>1566644
>срать сасемблером там, где можно обойтись 5 строчками на сишке
Аноним 07/01/20 Втр 13:07:41 1566721258
>>1566665
Чем мечтать о работающих 5 строчках лучше бы помог человеку.
>>1566328
Слушай сюда, для sendinput нужен дескриптор окна/процесса которому будет посылаться сообщение. То что ты там нашёл дескриптор с помощью Spy++ это всё хуйня, надо дескриптор определять в реалтайм, и именно тот дескриптор, именно этого подокна. Для это нужно использовать хуки(перехват сообщений), ты перехватываешь сообщение, выдёргиваешь оттуда дескриптор и потом уже sendinputом посылаешь сообщение этому дескриптору. Но хук замутить это пиздец проблема, это уже типа взлома, будет срабатывать антивирус ессно, и вообще надо сильно изловчиться чтоб сделать(но вполне можно).
Второй способ, кривой но работает. Черех keybd_event, ты в программе делаешь модальное окно(которое поверх всех окон), делаешь в программе хоткей посредством GetAsyncKeyState.
Потом ставишь курсор куда тебе надо(наводишь фокус клавиатуры), зажимаешь хоткей, и мышкой наводишь курсор на окно своей программы. У нее срабатывает GetAsyncKeyState, а фокус то остался в твоей иггре, поэтому всё печататься будет туда. Вот такой вот способ. Не знаю глюк ли это или нет, на win7 работает.
Аноним 07/01/20 Втр 13:22:35 1566730259
>>1566721
В последних шиндах днинпут является оберткой над сообщениями для окон. То есть опять же должен хукаться через винапи. Inb4: держу в курсе.

>чем мечтать
Мань, на том скрине тупо switch/case, который нет смысл таким образом маняоптимизировать - конпелятор уже давно развернет как минимум не хуже, чем васян с книжкой по асму 1995 года выпуска.
Аноним 07/01/20 Втр 13:31:06 1566735260
>>1566730
Асм это мышление, Асм -это движение, Асм -это жизнь. Асм это способ заставить серое вещество работать. Поэтому я не обломаюсь скопипастить одинаковый код, руки не отсохнут.
Аноним 07/01/20 Втр 13:36:46 1566743261
>>1566730
>Мань, на том скрине тупо switch/case, который нет смысл таким образом маняоптимизировать
Ты не заметил invoke sleep? Что если в его игре поставили ограничение на время нажатия? Что тогда?
Аноним 07/01/20 Втр 13:37:21 1566744262
>>1566721
Ух бля... Ну попробую... Кстати, мне советовали один драйвер https://github.com/oblitum/Interception , используя его апи, скормить ему все что надо. Вот его небольшая документация http://www.oblita.com/interception и там написано:
>The Interception API provides a simple interface of communication with kernel-mode components, and those components are powerful. They intercept data in a early stage, before it reaches the core of OS input processing.
Как я понял, он на более низком уровне эмулирует сигналы для ос, что по идее может быть сравнимо с ручной обработкой сигнала. Но хз, так ли это. Вчера всю ночь пытался на нем что-то написать, но документация сыроватая, кроме рабочих примеров написать что-то свое не вышло. Не могу разобраться, как на его апи можно имитировать зацикливание нажатие клавиши.

Работал с кодом из примера https://pastebin.com/WjjhERiS
Вот, как я его понимаю:
в цикле while мы блочим проверку условия строчкой
>device = interception_wait(context)
, пока по заданным фильтрам не придет нужное состояние
>INTERCEPTION_FILTER_KEY_DOWN | INTERCEPTION_FILTER_KEY_UP
Допустим, я нажимаю кнопку, срабатывает KEY_DOWN, функция interception_receive что-то там возвращает > 0, после чего оказываемся в теле цикла, где устанавливаем нужную клавишу и посылаем ее драйверу. Перед отправкой у клавиши всегда состояниеDOWN или UP, что по идее должно триггерить функцию interception_receive автоматически, зацикливая, но этого не происходит. А так же не понятно, что делают остальные фильтры
INTERCEPTION_FILTER_KEY_NONE,
INTERCEPTION_FILTER_KEY_ALL,
INTERCEPTION_FILTER_KEY_E0,
INTERCEPTION_FILTER_KEY_E1,
INTERCEPTION_FILTER_KEY_TERMSRV_SET_LED,
INTERCEPTION_FILTER_KEY_TERMSRV_SHADOW,
INTERCEPTION_FILTER_KEY_TERMSRV_VKPACKET (это все есть в хидере interception.h https://pastebin.com/NN4Bdefj)

>keybd_event
Я встречал его, но было написано, типа: используйте вместо него sendinput, мол он уже не работает. Твой способ для меня тоже не совсем понятный, надо пробовать.
Аноним 07/01/20 Втр 13:39:42 1566752263
Аноним 07/01/20 Втр 13:39:56 1566753264
Не проще ардуинку взять и сделать из неё клавиатуру?
Аноним 07/01/20 Втр 13:48:07 1566758265
>>1566753
Тоже советовали (stm32 и USB HID), что имелось ввиду под usb hid мне тот анон так и не ответил, программатор? А потом я подумал: есть ли смысл тратить на все это по 500рублей, чтобы попердеть вместе с ней, вероятно, не получить никакого результата и отправить ее на полку? К тому же, там столько всяких kitов, хер поймешь что нужно, а потом, еще эти проводки нужны, а может еще что нужно, о чем я даже не могу представить?
Аноним 07/01/20 Втр 13:51:34 1566762266
>>1566744
Да мы с тобой в разных плоскостях. Ты сильно всё преувеличиваешь, всё гораздо проще, ты пойми сам принцип.(я не шарю в ваших крестах, но примерно понимаю).
1 Послать сообщение из одной программы в другую - это гемор, это взлом и все вытекающие. Это можно сделать только посредством hook. Это единственная задокументированная возможность винды, других нет. Нет никаких драйверов, всё это спокойно делается самой виндой(но сработает антивирус).
И ещё есть второй способ обхода который я написал.
Аноним 07/01/20 Втр 13:51:56 1566763267
>>1566644
Может показаться, что я ною и не хочу решать свою проблему... Но я, от слова совсем, не хотел бы иметь дело с ассемблером... Вот, вообще.
Аноним 07/01/20 Втр 13:54:21 1566768268
>>1566744
ХУЛЕ НАПИСАНО ТО БЛЯТЬ!! НА ЗАБОРЕ ТОЖЕ НАПИСАНО.
>>keybd_event
Просто эмулирует событие клавиатуры. Конечно мелкомягким нахуй чтобы была такая возможность. А ты пробуй, у тебя же задача.
Аноним 07/01/20 Втр 14:02:36 1566774269
>>1566762
>Нет никаких драйверов
Ну, допустим, в какой-то момент я хотел собрать цепь таймера на микроконтроллере NE555, который запускал бы реле, а та в свою очередь замыкала/размыкала контакты кнопки, к которой бы я просто подпаялся. Сигнал бы поступал в ос сразу после драйвера клавиатуры и все бы работало, я уверен, только, если в том античите стоит какая-то проверка на интервалы нажатия кнопки, то мб и это обошла бы игра, но можно ведь попытаться как-то сделать эти интервалы случайными, чтобы имитировать ручное нажатие. Вот, поэтому я думал, что тот драйвер он просто перехватывает сигналы от драйвера клавиатуры (до обработки самой ос) и с помощью его api можно все что угодно сымитировать на "аппаратном" уровне, а ОС ничего не остается, как принять эти все сигналы и посчитать их ручным вводом.

>но сработает антивирус
Ну, ок, это проблема? Может его выключить/удалить на время? Я просто не понимаю что сложнее: обойти антивирус или написать хук.
Аноним 07/01/20 Втр 14:13:38 1566786270
>>1566774
Ты вот в этом месте заморочился. Их игра просто принимает сообщения от стндартного драйвера клавиатуры. А не работает у тебя, потому что меняется дескриптор процесса или тераяется фокус клавиатуры, в игре же много чего происходит, и если ты сам не тыкнул, то всё будет происходить само-сабой, всё будет само переключаться, как предусмотренно разрабами.
А вот чтобы "ткнуть из своей программы" нужно использовать хук, тогда гемор и антивирус. Или второй вариант: ты сам ткнёшь и программа всё доделает.
Тут главный вопрос: пользователь ткнёт или программа.
Аноним 07/01/20 Втр 14:21:24 1566798271
keybd_event сообщает системе о событии которое произошло с клавиатурой. А приложения сами решают, обрабатывать это событие или нет.
И приложение конечно не будет обрабатывать это событие если фокус клавиатуры на нём не установлен.
А sendinput отправляет сообщение. Но чтобы отправить должен же быть адрес, логично?
Аноним 07/01/20 Втр 14:31:42 1566809272
Unt.mp4 (1971Кб, 640x360, 00:00:07)
640x360
111.jpg (693Кб, 720x1520)
720x1520
>>1566763
У вас системное программирование, и у нас сис. программирование.
Тебе же это надо? Ну я рассказываю что и как. Можешь поссать на своих англоязычных друзей от моего имени.
не деаноньте плиз, я с хорошими намерениями
то ли ещё будет
Аноним 07/01/20 Втр 17:11:06 1566916273
tipizdec.png (277Кб, 717x393)
717x393
>>1566763
Решая задачи ты будешь пользоваться инструментами, асм один из них, не хочешь, найди того кто захочет
Аноним 07/01/20 Втр 18:00:36 1566950274
>>1566721
Окно модальным должно быть в контексте всей ОС? Что-то я не могу найти инфы о том, как это можно сделать. Везде пишут только о том, как сделать дочернее окно модальным в контексте приложения.
Аноним 07/01/20 Втр 18:05:36 1566955275
Сап. Есть у мня массив шестнадцатиричных чисел, его нужно записать в бинарный файл ("wb"). Я это делаю так: fwrite(array, sizeof(array), 1, FILE_OUT); Но в самом файле, например, числo 0xaf01 записанно как 0x01af (проверял hexdump'ом). Как сделать так, чтобы числа записывались в bigendian'е? вариант с модификацией массива не катит
Аноним 07/01/20 Втр 18:07:04 1566956276
>>1566955
А обратно читает как?
Аноним 07/01/20 Втр 18:11:54 1566961277
Аноним 07/01/20 Втр 18:16:02 1566965278
>>1566961
Тогда зависит от имплементации получается, правильно? Попробуй альтернативные stdio
Аноним 07/01/20 Втр 18:18:14 1566966279
>>1566809
Да я ничего против не имею, просто я не готов вот так взять и начать изучать один из сложнейших яп для какой-то своей хуйни. На это явно уйдет дохера времени, которого нет + явно не достаточно просто понять синтаксис языка, нужно понимать еще архитектуру процессора (наворачивать 1к страниц таненбаума не хочу), под который ты пишешь и наверняка еще дохуище подводных. Моя жопа к такому еще не готова. Я ж, блядь, молодой и шутливый еще...

А вообще, интересно. В чем преимущество этого языка? Тот код, который ты кидал, он как-то связан с чат-ботом в POE? И как так получается, что при использовании С/С++ потребовалось бы ебаться с хуками, вылавливать адреса функций и т.д. А ты взял ASM и написал код в длину высоты экрана и у тебя все работает?
Аноним 07/01/20 Втр 18:18:39 1566967280
>>1566965
>>Попробуй альтернативные stdio
А проще никак? Ну в духе передать какой-нить дополнительный аргумент fwrite() или fprintf()?
Аноним 07/01/20 Втр 18:50:54 1566997281
>>1566955
Для долбоёбов, которые не осиливают сами - придумали network endianness. htons()/htonl() из netinet/in.h, для тех кто даже куколдугл не осилил.
Аноним 07/01/20 Втр 19:02:06 1567006282
>>1566997
Ну и при чтении - ntohs/ntohl.
Аноним 07/01/20 Втр 19:17:27 1567016283
>>1566966
Так мне тоже надо ебаться с хуками. Ты меня не понял до сих пор, есть два стула:
1 правильный с хуками и ебатьнёй, от которого я отказался
2 кривой с модальным окном и keybd_event, который я выбрал. Там на видосе просто не видно окна программы(fraps не захватывает, надо было сразу указать).
Или просто DeskPins заюзай, главное чтобы окно программы было поверх, чтобы можно было тупо курсор навести на это окно во время удержания хоткея. Потому что фокус клавиатуры у тебя останется в игре, а твоя прога примет GetAsyncKeyState и начнёт выполняться, то есть хуячить keybd_event'ы.И всё будет автокликаться.

Да я сам деревянный, просто беру что надо и использую, не замарачиваюсь.
Аноним 07/01/20 Втр 19:23:33 1567020284
>>1566721
Да я вот, сейчас пытаюсь написать на winapi твой 2 способ, пока не выходит. Ты про модульное окно так и не ответил >>1566950 И еще не совсем понятен этот момент:
>чтобы можно было тупо курсор навести на это окно во время удержания хоткея
Т.е. нажимать на лкм для захвата окна не надо? Достаточно только навести? Звучит парадоксально.
Аноним 07/01/20 Втр 19:24:17 1567022285
Аноним 07/01/20 Втр 19:27:52 1567026286
>>1566955
Никак. Тебе ведь поDWORDовый реверс нужен. Можно сетевой хедер взять, но не знаю, как htonl/ntohl в плане инлайнов. По-хорошему, если на целевой архитектуре endianness совпадает с сетевой, то "вызовы" htonl/ntohl должны опускаться при конпеляции, то есть безопасность бесплатна. Можно макросами условную компиляции сделать, чтоб одним fwrite/fread все делалось в последнем случае. Хотя, если писать/читать неглядя, а дрочить массив, то цикл сам опустится.
Аноним 07/01/20 Втр 19:28:30 1567028287
>>1566966
>asm
>один из сложнейших
укатился в каштановый лес с этого господина
Аноним 07/01/20 Втр 19:28:38 1567029288
98ac0f36a5854b5[...].jpg (19Кб, 400x400)
400x400
>>1567020
>Звучит парадоксально.
Похуй, главное работает.
Да, зажимаешь хоткей, твоя прога как бы на паузе, потом просто наводишь курсор, она как бы снимается с паузы, принимает GetAsyncKeyState и начинает исполнять keybd_event'ы которые тебе надо. НО фокус клавиатуры то остался в игре, поэтому твоя игра будет принимать эти keybd_event'ы.
Аноним 07/01/20 Втр 19:37:08 1567036289
>>1567029
Ясно, но у меня так не захватывает фокус, нужно нажимать, а после нажатия фокус сбивается. Пробовал пока в блокноте. Но я не делал еще никакое окно модальным, ибо ты уже 3 раз не можешь про него ответить. Я могу сделать это окно модальным только в контексте приложения.
Аноним 07/01/20 Втр 19:44:22 1567049290
>>1567036
>ибо ты уже 3 раз не можешь про него ответить.
Ну просто указываешь в ресурсах DS_SYSMODAL и всё, никаких сложностей у меня не было.
Не должен фокус сбиваться, этот кривой способ должен везде работать. Может надо код писать в оконной процедуре.. из за этого может теряется фокус хз.
Щас с deskpins попробую.
Аноним 07/01/20 Втр 19:49:35 1567055291
Вы ебанаты не советуйте ему эту хуйню. Она может и заработает, только игрушка его сразу отключит/забанит потому что модуль античита 100% вшит в клиент
Аноним 07/01/20 Втр 19:49:55 1567056292
>>1567049
>DS_SYSMODAL
Вообще, в msdn написано
>This style is obsolete and is included for compatibility with 16-bit versions of Windows. If you specify this style, the system creates the dialog box with the WS_EX_TOPMOST style. This style does not prevent the user from accessing other windows on the desktop.
У тебя какая ос? 16 битные... Это что? Это по моему даже не ХР. Это 98 нахуй...
Аноним 07/01/20 Втр 19:51:34 1567061293
>>1567055
А за что забанит-то? За то, что кнопку зажал в игре?
Аноним 07/01/20 Втр 20:07:22 1567074294
>>1567056
Короче.. используй deskpins. Щас проверил, закоментил DS_SYSMODAL, работает.
Я не буду тут разбираться в тонкостях, ты просил способ обойти хуйню с sendinput, я тебе сказал как это сделал, прогу сам собирай. Главное пойми основной принцип:
1 Запускаешь свою прогу, закрепляешь её deskpins'ом
2 Кликаешь в то место куда тебе надо(устанавливаешь фокус клавиатуры)
3 Зажимаешь хоткей который указал в GetAsyncKeyState
4 При зажатом хоткее наводишь курсор на окно своей програмы
Она как бы снимается с паузы и начинает хуячить keybd_event'ы, а фокус клавы остался там, и там где он остался, то и будет принимать эти keybd_event'ы.

Как сделаешь, отпишись. :)
Аноним 07/01/20 Втр 20:45:16 1567105295
.webm (1500Кб, 1920x1080, 00:00:40)
1920x1080
>>1567074
Хз, у меня не получается. Вроде, все правильно делаю. Фокус при наведении не захватывается, нужно нажимать мышкой. После захвата фокуса в консоль выводится инфа о том, что хоткей (стрелка вверх) была нажата, как отрабатывают keybd_eventы не известно (пытаюсь сымитировать нажатие и отпускание клавиши Z).

Код: https://pastebin.com/8gHq99fH
Аноним 07/01/20 Втр 20:47:24 1567107296
>>1567105
Попробую завтра семерку накатить на виртуалку и там проверить.
Аноним 07/01/20 Втр 20:55:43 1567113297
>>1567105
Кстати, попробовал горячую клавишу тоже на Z заменить, keybd_event с этой кнопкой зацикливает хендлер, значит keybd_eventы работают. Проблема с этим фокусом.
Аноним 07/01/20 Втр 21:04:46 1567127298
>>1567113
Ты может используй системные клавиши для GetAsyncKeyState , у меня F6
Аноним 07/01/20 Втр 21:19:24 1567142299
bandicam.mp4 (307Кб, 1272x776, 00:00:14)
1272x776
>>1567105
Чудеса)
Может в 10-ке исправили этот баг
Аноним 07/01/20 Втр 21:27:36 1567149300
>>1567127
А ты мой код можешь скомпилить и у себя запустить? Там надо пролинковать только -lgdi32. Или я могу скинуть свой exeшник.
Аноним 07/01/20 Втр 21:33:22 1567156301
Аноним 07/01/20 Втр 21:39:28 1567159302
Мне проще в отладчике посмотреть где не она срабатывает.
Аноним 07/01/20 Втр 21:43:45 1567161303
Аноним 07/01/20 Втр 21:45:16 1567164304
>>1567161
Там горячая клавиша - стрелка вверх, печататься должна только z
Аноним 07/01/20 Втр 21:50:13 1567166305
>>1567164
Да я похоже понял. у меня окно делается DialogBoxParam. И GetAsyncKeyState c keybd_event внутри оконной процедуры.
Аноним 07/01/20 Втр 21:59:01 1567173306
>>1567166
Т.е. у тебя не заработал фокус?
Аноним 07/01/20 Втр 22:07:58 1567182307
>>1567173
>libstdc++-6.dll не найден
Да впизду(или завтра уже). Делай через DialogBoxParam, будет работать.
Аноним 07/01/20 Втр 22:13:06 1567185308
>>1540431 (OP)
Анчоусы, добрый вечер. Хочу вкатиться в C++(опыт погромирования есть), но вот задумался. Может сперва с C начать? Или с C++ сразу. Как вы считаете?
Аноним 07/01/20 Втр 22:14:17 1567186309
Аноним 07/01/20 Втр 22:15:50 1567188310
>>1567186
А почему не СИ сперва? В чём отличия в назначениях между C и ++? Разные цели использования?
07/01/20 Втр 22:24:46 1567190311
>>1567188
> А почему не СИ сперва?
Потому что тебя троллят. Кресты на порядок сложнее, запутаннее, а предпочтительный стиль программирования на крестах меняется с каждым стандартом. Но тем не менее их все равно придется выучить. Потом.
Аноним 07/01/20 Втр 22:32:21 1567192312
>>1567190
спасибо понял. начну с си.
Аноним 07/01/20 Втр 22:33:56 1567193313
dll.png (62Кб, 607x651)
607x651
>>1567182
Завтра попробую. Вот, если что, все dll с которыми приложение взаимодействует. Если что, думаю, могу тупо все из списка в один архив с exeшником засунуть и залить на хостинг.
Аноним 07/01/20 Втр 22:43:56 1567199314
>>1567185
Начни с книжки по языку си от их авторов, прочитай ее полностью, пока не поймешь каждое слово. Там база баз. Если типы данных и массивы покажутся примитивными, то веселье может начаться на структурах, указателях. Так же есть полно всяких деректив define, pragma и тд обязательных к ознакомлению. После этого всего уже можно изучать плюсы, начиная с ооп, std библиотека, потом шаблоны, stl библиотека и тд. Там уже сам поймешь куда лезть, а куда нет.
Аноним 07/01/20 Втр 22:49:51 1567204315
>>1567199
Спасибо большое, понял. Я так понял нужно искать книгу последней редакции от Дэниса Ритча?
Аноним 07/01/20 Втр 22:53:10 1567207316
>>1567204
>Дэниса Ритча
Да

>последней редакции
Не обязательно. Бери, какую найдешь, по последнему стандарту в си (99).
Аноним 07/01/20 Втр 22:54:28 1567209317
>>1567207
>99
С11

В шапке же есть все вроде.
Аноним 07/01/20 Втр 22:56:31 1567211318
>>1567207
>>1567209
Спасибо ещё раз, низкий поклон, анчоус.
Аноним 07/01/20 Втр 22:57:19 1567213319
Аноним 07/01/20 Втр 22:59:29 1567215320
>>1567209
Хотя, я сейчас посмотрел, они C11, вроде как, и не выпускали. А там многопоточность, которую ты в любом случае затронешь, когда плюсы будешь изучать. Так что бери любую редакцию или поновее, какую найдешь.
08/01/20 Срд 03:05:32 1567300321
>>1567213
Тетки на cppcon - это отдельная история. Одно выступление охуительнее другого. Недавно вон тянка рассказывала дядям, что такое таблица виртуальных методов, и где она лежит в энтих ваших классах. >>1503195
Аноним 08/01/20 Срд 05:04:10 1567321322
Си это та самая облегченная версия крестов? Няшный язычок, мне нравится. Лайтвейт йет паверфул...
Аноним 08/01/20 Срд 05:14:37 1567323323
>>1566762
>1 Послать сообщение из одной программы в другую - это гемор, это взлом и все вытекающие. Это можно сделать только посредством hook
П Р И Д У Р О К

SendNotifyMessage()
Аноним 08/01/20 Срд 06:11:17 1567327324
>>1567321
Это кроссплатформенный ассемблер, вась.
А трупстрауса++ - это ассемблер, в который зачем-то добавили унитаз, кухонную раковину, несвежий труп страуса и миниган для стрельбы по ногам и прочим конечностям. Ещё можно сконпелировать пушку boostАК-630, если минигана нетостаточно
Аноним 08/01/20 Срд 06:14:37 1567329325
>>1567193
>писать хуйню для взаимодействия с msvcp приложениями на плюсовом gcc, у которого свои костыли вместо стандартной либы
Месье знает толк.
Аноним 08/01/20 Срд 06:15:45 1567331326
>>1567329
Алсо, особенно смищно, учитывая что плюсов там и нет. Такой-то PIERDOLIENG ради использования cout вместо printf.
Аноним 08/01/20 Срд 09:47:03 1567358327
0.PNG (78Кб, 721x747)
721x747
>>1540431 (OP)
Сап, няши, такой вопрос - в шиндовс (win7) x64 процесс может загружать x86 библиотеку с ресурсами (иконки)?

Тут такое дело - мигрирую 32 битной на 64 битную систему, захотел себе и тотал коммандер 64 битный, но вот старый у меня тщательно настроен и мною кастомирзирован, в частности я когда-то нарисовал+надергал иконки и захерачил их в библиотеку в VS6.

Теперь я давно не прогаю, никаких студий у меня не стоит и я подумал пиздец, придется либо просить кого-то пересобирать библиотеку, либо редактировать каким-нибудь редактором ресурсов.

Но с удивлением обнаружил, что эта библиотека WCMICONS.DLL в 64-битном тотале осталась 32-битной. Это законно вообще?
Аноним 08/01/20 Срд 09:52:12 1567361328
>>1567358
Если там кода нет - можно хоть PowerPC или Alpha библиотеку от NT4 подсунуть, приложению похуй.
Аноним 08/01/20 Срд 09:57:49 1567363329
>>1567361
Да там кода нет, там одна секция с ресурсами. Я тоже так же подумал, но закралось сомнение, что шиндовс может зарубить это дело. Спасибо, лучей добра.
Аноним 08/01/20 Срд 10:21:21 1567370330
image.png (121Кб, 1280x994)
1280x994
image.png (117Кб, 1280x994)
1280x994
image.png (30Кб, 826x987)
826x987
>>1567363
Спецом поискал ISOшник PowerPCшной шенды и проверил на 10 x64.

Аноним 08/01/20 Срд 10:21:53 1567371331
image.png (15Кб, 946x718)
946x718
>>1567370
Вдогон: отклеился пик самого окна проги с иконкой из набора NT4.
Аноним 08/01/20 Срд 14:13:18 1567465332
Как создать диалоговое окно без VS и MFC? Просто не понимаю: что надо передать вторым параметром? Документация в msdn нихуя не говорит о MAKEINTRESOURCE(). Я только понял, что проект MFC в VS генерирует файл ресурсов каких-то .rc и заголовок с константами .h. А как без этого всего?

>DialogBoxParam(hInstance, MAKEINTRESOURCE(????), NULL, (DLGPROC)DialogProc, 0);

GetlastError() говорит о коде 1812, который, как я понял, как раз связан с этим аргументом. Я туда пробовал в цикле передавать числа от 0 до дохуя, пока функция не вернет > 0, но один хер ничего не вышло.
Аноним 08/01/20 Срд 15:31:07 1567504333
Аноним 08/01/20 Срд 16:28:41 1567552334
Я хз, один хуй не работает с DialogBoxParam. Попробовал даже на семерке.

Вот весь проект вместе с исполняемым файлом и dll библиотеками:
https://mega.nz/#!dQNgmISS!LvFJT7ff-hQHDJhAaA4uk9virqz1Q2hRkU8xqshOVmI

Если не сложно, попробуй у себя запусти или хотя бы код глянь. Пробовал так же и без DS_SYSMODAL (с diskpins) - тоже самое.
Аноним 08/01/20 Срд 16:38:04 1567554335
Аноним 08/01/20 Срд 17:17:38 1567585336
двощ, решил я войти в айти, поставил code::blocks 17.12 и mingw который с ним за компанию идёт.

int indicator = 2;
int proc (void)
{
indicator = indicator + 1;
return 0;
}
int main()
{
printf("%d", indicator);
proc();
printf("%d", indicator);

}

почему данный говнокод выдает 23? ведь, если не пиздят книги, впроцедуру копируются значения глобальных переменных а сами они не изменяются.
Аноним 08/01/20 Срд 17:20:28 1567588337
>>1567585
Потому что ты перевод строки \n не сделал и тебе 2 результата в одну строчку записало.
Аноним 08/01/20 Срд 17:22:44 1567589338
>>1567588
да это понятно. почему функция изменила значение глобальной переменной?
Аноним 08/01/20 Срд 17:23:09 1567590339
>>1567589
это законно вообще?
Аноним 08/01/20 Срд 17:24:23 1567593340
>>1567589
Та к а с хуя ей его не изменять? У тебя переменная глобальная.
Аноним 08/01/20 Срд 17:29:22 1567598341
>>1567593
т.е. я жопочтец, так и должно быть?
Аноним 08/01/20 Срд 17:36:25 1567604342
>>1567598
>жопочтец
Если ты прочитал, что глобальная переменная не должна меняться в функциях, то - да.
Аноним 08/01/20 Срд 17:38:18 1567608343
Аноним 08/01/20 Срд 17:46:46 1567613344
>>1567552
Поверхностно глянул, думаю вот тут проблема:
case WM_COMMAND:
if (GetAsyncKeyState(VK_SPACE)) {

Тут у тебя прога ждёт сообщение WM_COMMAND. Не надо завязывать GetAsyncKeyState на WM_COMMAND, надо чтобы GetAsyncKeyState просто выполнялась с параметром хоткея. У меня на скрине она просто выполняется без WM_COMMAND, хотя тоже можно завязать на WM_COMMAND(77h-код клавиши).
Аноним 08/01/20 Срд 17:48:38 1567615345
Screenshot72.jpg (58Кб, 822x447)
822x447
>>1567613
скрин
я на 99% уверен что в этом проблема, потому что я бы тоже через WM_COMMAND сделал.
Аноним 08/01/20 Срд 17:53:29 1567618346
>>1567615
Т.е. ты предлагаешь вынести GetAsyncKeyState из switch, либо в default засунуть?
Аноним 08/01/20 Срд 17:58:55 1567626347
>>1567618
>вынести GetAsyncKeyState из switch
Наверно да, попробуй, я хз как это сделать. Надо чтобы она самостоятельно проверяла клавишу, без сообщений.
Аноним 08/01/20 Срд 18:07:08 1567633348
>>1567626
Лол, вроде, сработало. Надо в игре попробовать. Алсо, я правильно понимаю, что это работает только с удержанием клавиши? А если нужна определенная периодичность, то надо свои костыли для обработки keybd_event писать?
Аноним 08/01/20 Срд 18:09:41 1567636349
Меня убивает местный рандом. Вот надо написать программу, решающую задачу о встрече.
Я пишу так
srand(time(NULL));
double z;
for (int i=0;i< 1000000; i++){
int k = rand()%60;
int j = rand()%60;
if (abs(k-j) < 15)
z++;
}
prinft("%f", z/1000000);

И эта программа выдает неверные результаты.
А такой же код на пистоне с использованием randint(0, 60) выдает верные результаты. Почему?
Аноним 08/01/20 Срд 18:11:05 1567638350
>>1567633
>то надо свои костыли для обработки keybd_event писать?
Ага.. я беру текст из текcтового файла и подставляю в keybd_event
я там немного перепутал, sendinput тоже должен работать по идее
08/01/20 Срд 18:19:43 1567643351
Аноним 08/01/20 Срд 18:27:02 1567650352
>>1567638
С игрой не выходит) Приходится вручную отпускать кнопку и нажимать снова, чтобы keybd_event/sendinput отработали 1 раз. Но это я просто посылаю сотни событий за раз. Надо будет еще как-то обработать эти нажатия, ограничив число вызовов.
Аноним 08/01/20 Срд 18:33:17 1567655353
>>1567643
Код просто для примера. Так то там нет такой ошибки.
Вообще результат отличается на сотые, хотя должен в худшем случае на десятитысячные.
Аноним 08/01/20 Срд 18:49:56 1567673354
>>1567650
Тебе надо сделать условие - если GetAsyncKeyState возвращает что хоткей не нажат, то тупо выход из процедуры.
Аноним 08/01/20 Срд 23:26:12 1567826355
Хелп! Почему ((i & 0x0F00) >> 8)&0xf != (i >> 8) & 0xf ???
i пробегает зачения от 0x1111 до 0x10000
Аноним 09/01/20 Чтв 02:10:01 1567906356
>>1540431 (OP)
Интересно а как распознователи всякие пишут? Я погромист-ньюфаня и крайне с трудом представляю как это. Вводят чтоли определённый диапазон геометрический на соответсвие какой либо области пределам формы? Цвет детектят по попаданию пикселей в тот или иной цветойо диапазон?

Ну допустим программа отличает где кошка где собака. Очевидно что у собаки более длинный нос чем кошки, меньше глаза чем у кошки и есть программа которая сверяет размеры + старается прогнать это всё под какой-то готовый шаблон похожей на кошчий нос формы. Сложно на словах это объяснять, ну я думаю вы понели.
Аноним 09/01/20 Чтв 02:40:19 1567916357
>>1567826
> i & 0x0F00
> i
Хмммм.... Блядь, действительно, почему же так?
Аноним 09/01/20 Чтв 07:34:46 1567956358
Аноним 09/01/20 Чтв 07:55:05 1567960359
>>1567906

Чтобы в этом разобраться, тебе надо разобраться в алгоритмах, которые для этого используются. Бери какую-то книжку по алгоритмам распознавания и читай.
Аноним 09/01/20 Чтв 09:03:21 1567973360
Аноним 09/01/20 Чтв 15:08:19 1568131361
А можно как-то переписать функцию scanf() чтобы можно было делать так: scanf("%Y", &struc), где struc - мной определенная структура?
Аноним 09/01/20 Чтв 15:16:38 1568141362
>>1568131
конечно! если ты новичек, это будет еще и интересной задачкой на программирование
делать примерно так: пишешь свою-функцию обертку my_scanf (или как ты ее назовешь), в ней парсишь первый параметр, как встретишь свою спецификацию формата, разбираешь ее по полям структуры, подготавливаешь новую форматную строку и передаешь дальше в стандартный scanf

Аноним 09/01/20 Чтв 15:20:11 1568146363
>>1568141
бля, перепутал с printf
маразм уже старческий
Аноним 09/01/20 Чтв 15:21:02 1568148364
>>1568146
хотя прокатит для scanf тот же подход
Аноним 09/01/20 Чтв 15:26:50 1568152365
>>1568148
my_scanf(char *s, ???)
А что идет вторым параметром? Я хочу чтобы она не только со struct работала, а как scanf(), с примитивами тоже.
Алсо, а без определения своей ф-ции никак? Ну, типо питоновский overriding.
Аноним 09/01/20 Чтв 15:28:35 1568154366
>>1540542
а в эту хуйню встроен компилятор или это как просто редактор кода и компилятор отдельно нужно качать?
Аноним 09/01/20 Чтв 15:30:33 1568158367
>>1568152
>???
Название твоей структуры
>overriding
Можешь её назвать scanf и она заменит обычный сканф, но зачем?
Аноним 09/01/20 Чтв 15:33:50 1568162368
>>1568158
>>Название твоей структуры
А мне надо чтобы она и с интами и чарами работала, вотъ!
>>Можешь её назвать scanf и она заменит обычный сканф
Разве я не получу ошибку?
Аноним 09/01/20 Чтв 15:40:36 1568172369
>>1568162
>она и с
Тогда пусть принимает указатель на войд и уже сама как-то решает, что это за указатель. Сканф парсит для этого форматную строчку.
>Разве я не получу ошибку?
Проверь. Но опять же, зачем так делать?.
Аноним 09/01/20 Чтв 15:43:18 1568177370
>>1568172
>>Тогда пусть принимает указатель на войд и уже сама как-то решает, что это за указатель. Сканф парсит для этого форматную строчку.
Можно поподробнее?
Аноним 09/01/20 Чтв 15:48:20 1568181371
>>1568177
>my_scanf(char ∗s, ???)
my_scanf(char ∗s, void ∗ v)
Аноним 09/01/20 Чтв 15:58:34 1568185372
Аноним 09/01/20 Чтв 16:16:11 1568203373
Ананасы, кто что знает о SDCC компиляторе для 8-битных мк (в частности мне он нужен для stm8)? Оно вообще пригодно для нормальной работы?
Я гоняю сейчас с ним тестовый код. Скомпилировал и слинковал код с отсутствующей реализацией функции - так оно сгенерировало финальный бинарь, а несуществующую функцию установило как будто она размещена на 0x0, лол. Ворнинг (не ошибку, а именно блять ворнинг) оно, конечно, напечатало, но из-за подобного долбоебизма пришлось добавить костыль в makefile. Теперь думаю - продолжать работать с этим говном или уж лучше юзать бесплатный IAR (при этом мне нужно будет его запускать на линуксе под вайном).

Читаю их списки рассылки - чувстсво, будто компилятор пишут какие-то отбитые индусы.
Аноним 09/01/20 Чтв 16:26:41 1568212374
>>1568185
Так меня интересует именно функция.
>>1568181
>>void ∗ v
не знал про такую штуку, надо будет попробовать она во всех стандартах есть?
Аноним 09/01/20 Чтв 16:30:16 1568217375
Аноним 09/01/20 Чтв 16:36:19 1568225376
>>1568217
>>1567636
А ничего что максимальный инт = 32767??
У тебя в цикле переполнение.
Аноним 09/01/20 Чтв 16:41:00 1568236377
>>1568225
Анон, это все мелочи, говорю же, в самом коде нет таких ошибок. Результат то почти верный, отличается на сотые, тогда как в пистоне на десятитысячные.
Аноним 09/01/20 Чтв 16:42:52 1568240378
>>1567636
Сама задача о встрече к слову
Есть 2 человека. Они договариваются встретиться в промежуток времени от часа до двух. После прихода они ждут не более 15 минут. Найдите шанс их встречи.
И в цикле должно быть <=15
Аноним 09/01/20 Чтв 17:14:16 1568295379
Capture.PNG (51Кб, 856x516)
856x516
Capture1.PNG (44Кб, 862x427)
862x427
Помогите, пожалуйста, с установкой Visual Studio Community Edition. Что именно нужно установить для СИ. Не хочу ничего лишнего загружать просто.
Аноним 09/01/20 Чтв 17:17:00 1568298380
>>1568295
>Не хочу ничего лишнего загружать просто.
мало места на диске осталось?

Аноним 09/01/20 Чтв 17:18:07 1568300381
>>1568298
нет. просто там если всё без разбора груизть 6гб будет загружаться. алсо я вот прочитал описание всех этих пакетов и не увидел там ни одного упоминания C только C++ и шарп.
Аноним 09/01/20 Чтв 17:19:57 1568304382
>>1568152
>А что идет вторым параметром?
функции с переменным числом параметров умеешь писать? это и будет

Аноним 09/01/20 Чтв 17:24:05 1568310383
>>1568300
Будет грузиться меньше гигабайта.
>>1568295
Визуалка не предназначена для си. Там суржик вместо сишечки.
Аноним 09/01/20 Чтв 17:26:56 1568315384
>>1568310
>Visual Studio 2017 Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне "есть все, что тебе понадобится в реальном проекте плюс кривая библиотека". Анализатор кода в комплекте.
из оп поста.
Аноним 09/01/20 Чтв 17:42:38 1568337385
Устанавливаю визуал студио. Уже не терпится высрать свой первый хеллоуворлд на си.
Аноним 09/01/20 Чтв 17:43:25 1568341386
>>1568337
>погромировать на виндавсе
Хех, мда
Аноним 09/01/20 Чтв 17:45:10 1568343387
>>1568341
А на чём погромировать? На досе? Если ты о unix то иди со своей сектой в /s/ и там агитируй. Я хочу учить язык программирования, а не сосноль пердоли.
Аноним 09/01/20 Чтв 17:51:10 1568354388
>>1568343
Такому чму как ты не место в рядах сигоспод.
Аноним 09/01/20 Чтв 17:52:33 1568355389
>>1568343
>ещё не начал, но уже всё знает
>но секта это вы
Мда, хех
Аноним 09/01/20 Чтв 17:56:41 1568357390
Аноним 09/01/20 Чтв 17:59:06 1568361391
>>1568240
Разве это не обычная задача на геометрическую вероятность?
Аноним 09/01/20 Чтв 18:03:11 1568372392
>>1568361
Да, обычная. Но надо провести моделирование, что я и пытаюсь сделать. На питоне все сходится, на си нет.
Аноним 09/01/20 Чтв 18:59:15 1568450393
Capture.PNG (8Кб, 971x472)
971x472
Итак, господа, СИшники в вашем ряду пополнилось. Только что высрал свой первый хеллоуворлд. Нравится вам это или нет, но теперь такая ньюфажная хуета как я с вами в одном треде будет сидеть.
Аноним 09/01/20 Чтв 19:06:27 1568455394
>>1568450
> вниманиеблядь
> вендосектант
> олигофрен
Тебе бы js учить с таким то набором качеств.
Аноним 09/01/20 Чтв 19:07:43 1568457395
>>1568455
когда я в прцоессе обучения увижу что мне НУЖНА ПЕРДОЛЯ ИНАЧЕ НИКАК, вот тогда и поговорим.
Аноним 09/01/20 Чтв 19:09:22 1568458396
>>1568457
> мелкобуква
Ммм, продолжай
Аноним 09/01/20 Чтв 19:33:08 1568474397
>>1568455
>вендосектант
Вскукарек со стороны столлманопараши. Кроме игрушек, на линупсе нет еще дохуя полезного софта, например, для записи и редактирования аудио и написания музыки. На венде куча вст плагинов на любой вкус и цвет, а на линупсе хуй да нихуя, хотя битвиг и рипер портировали, но какой в них смысл без плагинов? Правда, на маке дела получше, но для этого нужно быть геем. Остальные юниксы начиная со бзди даже рассматривать всерьез смешно.
Аноним 09/01/20 Чтв 19:34:58 1568477398
>>1568474
Да не спорь ты сним, это же пердоля. Ты ему аргументы, он тебя гавном поливает. У них секта такая, самые агрессивные и неадекватные в айти сторонники пердоли. Просто игнорируй.
Аноним 09/01/20 Чтв 19:36:11 1568479399
>>1568474
Шиз, какая музыка, мы в треде языка си, программировать на котором в юникс системе не в пример удобнее.
Аноним 09/01/20 Чтв 19:41:10 1568484400
>>1568479
>программировать на котором в юникс системе не в пример удобнее.
Может ему нужно программировать на Си и параллельно писать музыку, откуда ты знаешь? Современные ОС многозадачные, если что.
Аноним 09/01/20 Чтв 20:20:40 1568533401
>>1568372
>>на си нет.
Так а от нас то ты чего хочешь?
Аноним 09/01/20 Чтв 20:24:07 1568539402
>>1568455
На самом деле ты зря жс недооцениваешь сам так делал, сейчас JavаScript - полноценный язык программирования, и на нем есть интересные вещи.
Аноним 09/01/20 Чтв 20:46:39 1568563403
>>1568474
Ох какие мелочные претензии-то стали. Давно не следил, раньше хоть предъявляли, что игр нет, фотошопа. А сейчас только плагинов для аудиопердоль не хватает? Может и правда пора перекатываться.
Аноним 09/01/20 Чтв 21:02:05 1568578404
>>1568563
>А сейчас только плагинов для аудиопердоль не хватает?
А че ты смеешься? Твой любимый репчик и симфо джаз павер металкор в аудиопердолях записывается и сводится целиком, времена оналога давно позади.
Аноним 09/01/20 Чтв 21:04:37 1568584405
>>1568578
А потом хранятся и передаются мне тысячей линуксов, как оба этих факта вообще меня касаются?
Аноним 09/01/20 Чтв 21:06:44 1568591406
>>1568584
Тебя -- никак, он касается людей, которым нужны аудиопердоли, а на линупсе их нет.
Аноним 09/01/20 Чтв 21:09:44 1568599407
>>1568591
Так эти люди и есть аудиопердоли! Желаю им всего наилучшего, кстати, но в отличие от пользователей фотошопа и тем более игорь, их число просто ничтожно. Поэтому я и сказал, что претензии стали мелочными.
09/01/20 Чтв 21:14:52 1568603408
>>1568295
> Desktop Development with C++
Вот это. Но тебе правильно сказали, запасись местом на винте, там далеко не гигабайт.

>>1568310
> Визуалка не предназначена для си
Сохраняешь файл с расширением .c - будет Си. Или можно еще в настройках проекта насильно компилятору язык задать (/Tc).

>>1568479
> программировать на котором в юникс системе не в пример удобнее
Особенно удобно пердолиться в gdb, когда source-level отладка не помогает, при том, что на винде есть качественные графические отладчики машинного кода. Или искать файлы find-ом, при том, что в винде есть Everything. Или придумывать, как же сделать программу с GUI, и чтобы не выглядело как Tk. Или изобретать свой формат для хранения настроек, снова. Или собирать чужие некомпилирующиеся утилиты с дохулиардом зависимостей, потому что скачать уже собранный бинарник нельзя. Вернее, скачать-то можно, но у тебя либц не той версии, и вообще иди нахуй.
Аноним 09/01/20 Чтв 21:26:15 1568608409
>>1568599
Ну я пользователь аудиопердоль, например, что мешает мне полностью перейти на линупс. Если бы не оно, венду можно было бы держать только для йобы и на черный день (хотя на черный день достаточно ВМ).
Аноним 09/01/20 Чтв 21:27:18 1568611410
>>1568608
>Ну я аудиопердоля
Самофикс.
Аноним 09/01/20 Чтв 21:27:30 1568612411
Capture.PNG (35Кб, 978x608)
978x608
9-е и 13-е строки даёт ошибку как устаревшие функции. формат стоит си. почему так?
Аноним 09/01/20 Чтв 21:32:29 1568616412
>>1568612
Всё так. У тебя написано, что строку ввести "upto 100 character", но кто останавливает от введения более длинной? Вот тебе уже и overflow твоего массива. 100 уже будет много, потому что нужно место для '\0'
Аноним 09/01/20 Чтв 21:33:15 1568617413
>>1568612
Потому что вижуалка.
Там же написано, что нужно использовать _CRT_SECURE_NO_WARNINGS. Я уже не помню, как это делается, загугли сам.
Аноним 09/01/20 Чтв 21:34:35 1568619414
>>1568617
>>1568616

Спасибо всем огромное за ответы, я уже отключил это предупреждение. Там по ссылке от визуалки инструкцию дали как его отключить.
Аноним 09/01/20 Чтв 21:57:31 1568655415
>>1568617
>>1568619
Что вы за люди-то.
Черным по белому написано: "используй scanf_s вместо scanf", а вы тулите устаревшие небезопасные функции и отключаете предупреждения.
Аноним 09/01/20 Чтв 22:00:21 1568658416
>>1568655
о спасибо, анон. тогда я включу назад вонинг тот. да я просто нашёл тут один самоучитель ебашу по нему, но он видимо староватый это я уже понял т.к. там новую строку обозначают 'n', а не '\n'.
Аноним 09/01/20 Чтв 22:03:49 1568665417
>>1568612
Строки читай так: scanf("%[^\n]", s), вроде даже так можно scanf("%100[^\n]", s) с прописанным ограничением.
Аноним 09/01/20 Чтв 22:06:00 1568668418
>>1568665
Спасибо, огромное, анчоус.
Аноним 09/01/20 Чтв 22:12:06 1568681419
>>1568665
>>1568655
только в отличии от scanf в scanf_s есть ещё третий аргумент - длина буфера её тоже нужно прописать иначе возможны выебоны со стороны системы.
Аноним 09/01/20 Чтв 23:16:14 1568776420
>>1568681
Правильно, потому что эта функция безопасна и проверяет, не затронешь ли ты чужую память во время ее выполнения.
А обычная версия может переписать чужой фрагмент памяти и порушить тебе все.
Аноним 09/01/20 Чтв 23:18:20 1568782421
>>1568776
Ничего себе. Не знал, что язык такие возможности имеет, спасибо огромное возьму это на заметку.
Аноним 09/01/20 Чтв 23:30:02 1568800422
>>1568776
а если не ставить ограничение у строки в 100? просто не ставить скобки, а тупо задать перменную. то будет анлимит?
Аноним 10/01/20 Птн 01:50:14 1568857423
>>1568782
Это, вроде, непереносимый код.
То есть только msvc такое скомпилит, а gcc будет работать с обычным scanf, насколько я знаю - у самого не получилось скомпилить прогу с VS2015 с помощью gcc.

>>1568800
Почитай про объявление массивов.
Если ты уберешь квадратные скобки, то это будет обычная переменная. Если поставишь звёздочку - указатель, но нужно будет вручную выделять память под необходимое количество элементов.
Аноним 10/01/20 Птн 01:55:30 1568859424
Capture.PNG (16Кб, 1062x193)
1062x193
>>1568857
я уже загуглил эту тему на одном форуме, да обычно нужно юзать scanf, а scanf_s для безопасности в vs.

анчоус, молю, а как сделать чтобы он пробелы моего импута учитывал, а не обрывал на них?
Аноним 10/01/20 Птн 02:14:20 1568867425
>>1568859
Тут уже сорян, я вообще хуесос из соседнего треда и решил бы эту проблему с помощью std::cout << std::noskipws.
Аноним 10/01/20 Птн 02:15:09 1568868426
>>1568859
Понял. Спасибо, анчоус, что помогал. А из соседнего треда это из cp чтоли?
Аноним 10/01/20 Птн 02:19:55 1568872427
>>1568868
Да, я больше по плюсам, но на си тред тоже подписан, полезно.
Аноним 10/01/20 Птн 03:36:46 1568893428
scanf.png (21Кб, 687x341)
687x341
10/01/20 Птн 03:59:07 1568897429
>>1568655
> устаревшие небезопасные функции
Только по мнению Microsoft, которая идет с этим мнением и со своим _s-говном в известном направлении.


Аноним 10/01/20 Птн 06:15:47 1568912430
>>1568897
>пердолю-любителя битья памяти и переполняющихся буферов ожидаемо порвало
Аноним 10/01/20 Птн 12:00:29 1568989431
>>1568612
Для строк юзай fgets и не пердолься. Проще всего.
Аноним 10/01/20 Птн 15:16:30 1569075432
>>1568893
а вот я дегенерат, мне же анон выше уже объяснял это. спасибо, огромноеял.

>>1568989
попробую и то и то.
Аноним 10/01/20 Птн 15:19:18 1569078433
>>1568867
>винда
>как добавить пробел
>решил проблему плюсовым ай о
толстота пиздец. Хотя прямо под уровень треда.лайк если учишся в школе 21 и учишся писать код!!!
Аноним 10/01/20 Птн 15:22:34 1569081434
>>1567204
алсо загуглил вчера его биографию, что-то грустно стало. мужик придумал C много в современных кудахтерах сделано благодаря ему, а он умер в своём доме в одиночестве от рака простаты и даже точную дату смерти не знают т.к. не сразу его обнаружили.
Аноним 10/01/20 Птн 15:44:26 1569096435
>>1569078
А что за прикол со школой21?
>>1569081
Вроде бы сейчас такое норма. Капитализм же, вот перестал дед деньги делать, на него и положили болт.
Аноним 10/01/20 Птн 15:58:54 1569098436
>>1569096
да не он до последнего был у дел. работал там, его коллека же и обнаружил что он умер когда он долго не выходил на связь. жил там в доме, до последних дней жизни он занимался исследованиями в области кудахтеров. ну жалко, я то думал он ещё живой, обычно авторы предыдущих языков которые я учил все живые.
Аноним 10/01/20 Птн 16:07:22 1569101437
>>1568539
>интересные вещи
Пишешь кароч такой const ya = {sosu: 'hui'}, каким-то хуем меняешь свойство sosu, полагая что это невозможно, на выходе получаешь не то, что ожидал. В итоге не можешь понять где и что могло наебнуться в коде.
Аноним 10/01/20 Птн 16:09:01 1569102438
>>1568539
Джава срипты, питоны, хуйтоны и прочая хуета для детей и веб-клоунов высерающих сайты под ключ это всё несерьёзно. Это всё языки для тех кто не хотели работать на дно работах и ВАШЛИ В АЙТИ лишь бы бабки были. Настоящие тру зароты дрочат Сишечку и крестики.
Аноним 10/01/20 Птн 16:09:12 1569103439
>>1569101
const не существует, тебя обмынывали
Аноним 10/01/20 Птн 16:09:15 1569104440
>>1569101
А еще, а еще... Берешь такой строку, нахуй, и передаешь в аргумент, ожидающий интегер))))000))))00)0
Аноним 10/01/20 Птн 16:11:06 1569105441
>>1569102
Как скажешь, треш из школы 21.
Аноним 10/01/20 Птн 16:12:08 1569107442
>>1569105
Что за школа 21? Это что локальный мемос такой?
Аноним 10/01/20 Птн 16:12:41 1569108443
>>1568310
>Визуалка не предназначена для си.
Ну да. Нахуй Си вообще нужен? На нём пишут только под микроконтроллеры, а там своё IDE есть фирменное. Студия же предназначена для нормальных программ под ПК, а тут Си не всрался совершенно, инвалидный огрызок.
Аноним 10/01/20 Птн 16:20:45 1569109444
>>1569108
>пизданула хуйня с джавы
Аноним 10/01/20 Птн 16:25:48 1569110445
>>1569078
Ты бы хоть потрудился прочесть пост ниже, что я пишу на плюсах, а сюда иногда просто заглядываю.
Но покукарекать же важнее.
Аноним 10/01/20 Птн 17:04:50 1569126446
>>1569110
Что ты скрытый сишник? Вроде бы на крестах пишешь, чего ещё нужно, но нет нужно заглянуть в си... Не скрывай свои желания
Аноним 10/01/20 Птн 20:21:52 1569232447
Как в СИ график сделать? Есть ли какой-нибудь модуль? Есть группа точек (x;y) и вот по ним нужно построить функцию.
Аноним 10/01/20 Птн 20:37:11 1569236448
>>1569232
Двумерный массив char размером NxM, где N - диапазон по X, деленный на шаг, а M - та же хуйня по Y. Идешь от x0 до xn, но если модуль производной больше 1, то не инкрементишь, а увеличиваешь ровно настолько, чтоб инкреметнулся y. И, собсно, все y, попадающие в вертикальный диапазон, рисуешь в массив (предварительно заполненный пробелами). А потом этот массив печатаешь.
Аноним 10/01/20 Птн 20:37:55 1569237449
>>1569232
Искать какую-то графическую (или гуй с зачаточной графикой) библиотеку. SDL или еще что. Если подойдет что программа будет генерировать svg файл с графиком (а не рисовать его на мониторе), то после беглого изучения описания стандарта (svg) с вики и расмотреных нескольких примеров простых свг можно писать график в свг. Там ничего особо сложного нет, должно хватить часа двух. А если еще найжешь свг с графикомто там вообще все просто - только свои числа подставить.
Аноним 10/01/20 Птн 20:39:17 1569238450
Аноним 10/01/20 Птн 20:56:31 1569247451
Capture.PNG (11Кб, 470x314)
470x314
Анчоусы, можно ли этот код как-то более элегантно записать?
Аноним 10/01/20 Птн 21:01:52 1569253452
>>1569247
int a, b;
вместо
int a,
b;
Но это дело вкуса.
Аноним 10/01/20 Птн 21:02:55 1569254453
>>1569253
ну мне в столбик нравится. я имел в виду более такие фундментальные вещи. мало ли какие-то другие методы есть.
Аноним 10/01/20 Птн 21:04:58 1569255454
>>1569247
Ну если сделать так что а всегда больше б (тоесть если б больше а то менять их местами) то можно убрать один printf и оставить проверку только на равенство. Или ввести функции min и max от двух аргументов, тогда тоже можно убрать один printf опставить проверку на равенство и если не равны то там в будет что то типа printf("......", min(a,b), max(a,b));
Аноним 10/01/20 Птн 21:06:11 1569256455
>>1569247
выносишь в функцию, дальше цепочка if-return, последнее условие просто return

Аноним 10/01/20 Птн 21:09:01 1569257456
>>1569256
а точно спасибо, как это я с ретурном то проебался. точно так программа гораздо быстрее будет завршаться. спасибо большое, анчоус.

А можешь подсказать ещё одну вещь.
Вот нужна программа которая бы принимала
x список чисел
y список чисел
который введёт пользователь. Суть в том что пользователь может ввести просто 3 числа, а может 10 ввести. Как это реализовать?
Аноним 10/01/20 Птн 21:09:20 1569258457
>>1569232
я бы сгенерил массив данных для графика в проге, а потом их отдал бы в gnuplot

Аноним 10/01/20 Птн 21:26:49 1569262458
Аноним 10/01/20 Птн 21:28:04 1569263459
>>1569262
Рисовать тупо или именно графики строить? Хотелось бы готовый модуль с графиками в идеале. Ну или придётся с лицом лягушки пилить график самостоятельно
Аноним 10/01/20 Птн 21:41:28 1569271460
>>1569247
Так мона:
int a, b, x;
printf("Enter zaloopa");
scanf("%d%d", &a, &b);
x=(a>b) ? a:b;//вроде можно без х, но не во всех стандартах
if(a!=b)printf("zaloopa is %d, mask is %d", x, (a+b)-x);
else printf("pizda");

Аноним 10/01/20 Птн 21:46:24 1569274461
>>1569263
А в чем проблема? Передал координаты ф-ции и получил график. Можешь на гитхабе поискать стороннюю либу если такое не устраивает. Ну или пиздуй в какой-нибуть mathematica(?)/PariGP(?)
Аноним 10/01/20 Птн 22:24:21 1569299462
>>1569274
>Передал координаты ф-ции и получил график.
Ну если так то всё шикарно.

А как напечатать содержимое односвязного списка?
Аноним 11/01/20 Суб 02:20:20 1569393463
Аноним 11/01/20 Суб 02:25:23 1569394464
>>1569299
Обратиться к полю, в котором хранишь данные. Потом вспомогательный указатель на следующий элемент подвинуть в цикле while (p->next != NULL).
Аноним 11/01/20 Суб 02:56:00 1569411465
IMG202001110253[...].jpg (27Кб, 1280x572)
1280x572
Выродки блядь, вы можете иф стейтмент закрывать скобками? Невозможно вашу кашу из элифов однострочной хуеты с переносами читать. Либо закрывайте либо пишите тело в той же строке в которой стейтмент. И купите себе блять книжку со стайлгайдом
Аноним 11/01/20 Суб 02:57:18 1569413466
Аноним 11/01/20 Суб 02:57:27 1569414467
>>1569411
jsокал, выкатывайся
Аноним 11/01/20 Суб 02:59:56 1569415468
>>1569414
Ребенок-илитарий, написавший 0 строчек коммерческого кода, плиз, не нужно защищать свой скудный ум такой риторикой. Лестница элифов без скобок ВСЕГДА получается нечитаемой
Аноним 11/01/20 Суб 03:01:04 1569416469
>>1569415
да да да, иди на хуй :)
Аноним 11/01/20 Суб 03:05:31 1569418470
>>1569411
>Либо закрывайте
Нинужно

>либо пишите тело в той же строке в которой стейтмент.
Никрасиво
Аноним 11/01/20 Суб 03:05:44 1569419471
>>1569416
Прости что напомнил о твоей несостоятельности, хуйня из школы 21.
Аноним 11/01/20 Суб 03:41:27 1569452472
>>1569247
А теперь тоже самое без операторов сравнения сделай.
Аноним 11/01/20 Суб 04:13:29 1569460473
Аноним 11/01/20 Суб 04:23:06 1569463474
>>1569460
шизло, ты? паренек делает учебный проект по приколу заливая видосики на ютуб, че тебе не нравится? Ах да, ты же долбоеб пишешь простынки иф стейтментов без скобок друг под кругом, прости что спросил.
Аноним 11/01/20 Суб 04:29:56 1569467475
Аноним 11/01/20 Суб 04:33:49 1569469476
>>1569467
тебя жс макаки обоссали что ли, или откуда такая нелюбовь к популярному инструменту?
Аноним 11/01/20 Суб 04:40:31 1569470477
>жс макаки
>откуда такая нелюбовь
>сказала жс макака
?
Аноним 11/01/20 Суб 05:05:18 1569474478
>>1569470
>эти невнятные пуки ребенка-студннтишки не написавшего ни одной строчки коммерческого кода
Не рвись так сильно, илитарий. Сомневаюсь что ты по теме треда вообще хоть что-то кроме хеловорлд левела ответить сможешь.
Аноним 11/01/20 Суб 05:24:45 1569475479
1231259093278.jpg (114Кб, 281x339)
281x339
>эти невнятные пуки ребенка-студннтишки не написавшего ни одной строчки коммерческого кода
>Не рвись так сильно, илитарий. Сомневаюсь что ты по теме треда вообще хоть что-то кроме хеловорлд левела ответить сможешь.
Аноним 11/01/20 Суб 06:51:26 1569482480
>>1569475
>очередной пук гринтекстом
Аноним 11/01/20 Суб 07:15:07 1569483481
>>1568857
#ifndef _MSC_VER && !__INTEL_COMPILER && !__STDC_WANT_LIBC_EXT1__
// тут у нас типа костыль
int scanf_s() {
...
}
#endif
Аноним 11/01/20 Суб 07:32:33 1569486482
А вам тоже не понятно что забыли жсбляди итт, и нахуя они так рвутся?
Аноним 11/01/20 Суб 07:34:26 1569488483
>>1569486
Я не жсблядь, но про if без скобок в одну строчку он правильно бомбанул.
Никто уже не редактирует код в 80x40 терминалах, и твои лесенки в хуй никому не упали, они просто нечитабельны в нормальной IDE.
Аноним 11/01/20 Суб 07:35:39 1569489484
>>1569486
Отбились от своего стада, видимо.
Аноним 11/01/20 Суб 07:40:38 1569490485
>>1569488
Еще один жопоглазик, лол. Ты сам-то веришь в хуйню, которую несешь? Вот смотри, тупа логика и нихуя более: когда ты пишешь в строчку, твой ретурн/принтф или что ты там обычно на своем жскале высираешь, просто сливаются с условием. Понимаешь? Т.н. "лесенка" позволяет тебе увидеть разницу в слоях. Так вот, когда эта лесенка одна, тебе на хуй не нужны никакие скобки, они тупо не играют никакой роли. А теперь съебал, шизоид ебаный. Подрочи на свой читабельный тс, лол.
Аноним 11/01/20 Суб 07:42:09 1569491486
>>1569488
Я те больше скажу братиш, тут жсблядей ваще нет. Просто ребенку НЕПРИЯТНО, и в жизни он стремных вещей видел настолько мало, что считает жс чем-то плохим.
Аноним 11/01/20 Суб 07:43:44 1569492487
Ясно, жсблядь семеновна итт. Я пошел спать.
Аноним 11/01/20 Суб 07:43:58 1569493488
>>1569490
>этот разрыв жопы долбоёба со сломанным детектором.
Аноним 11/01/20 Суб 07:46:01 1569494489
>>1569490
Ты чё несёшь дегенерат? Ещё раз тебе говорю, по тому что ты пишешь уже видно что опыта у тебя просто ноль. Ниче ещё годик повкатываешься в школе 21, может вкатишься на галеру писать на жсе который ты так ненавидишь (причина наверное даже самому тебе не понятна)
Аноним 11/01/20 Суб 07:47:20 1569495490
image.png (111Кб, 625x833)
625x833
image.png (92Кб, 997x698)
997x698
>>1569492
>мам симёны сматли мам
Аноним 11/01/20 Суб 07:49:01 1569496491
1231259093278.jpg (114Кб, 281x339)
281x339
>Я не жсблядь, но про if без скобок в одну строчку он правильно бомбанул.
>Никто уже не редактирует код в 80x40 терминалах, и твои лесенки в хуй никому не упали, они просто нечитабельны в нормальной IDE.
>Я те больше скажу братиш, тут жсблядей ваще нет. Просто ребенку НЕПРИЯТНО, и в жизни он стремных вещей видел настолько мало, что считает жс чем-то плохим.
>Ты чё несёшь дегенерат? Ещё раз тебе говорю, по тому что ты пишешь уже видно что опыта у тебя просто ноль. Ниче ещё годик повкатываешься в школе 21, может вкатишься на галеру писать на жсе который ты так ненавидишь (причина наверное даже самому тебе не понятна)
>этот разрыв жопы долбоёба со сломанным детектором.
>мам симёны сматли мам
Аноним 11/01/20 Суб 07:54:06 1569498492
>>1569496
>это буйство школомаксималиста в этом итт
Как там лабы по "плюсам" с cdin/cout вместо printf?
Аноним 11/01/20 Суб 07:54:27 1569499493
>>1569495
Тоже мне, блядь, притащил пруфы, лол. Ору с тебя - дауна. Алсо, скрины делать научись, говно позорное. И про лесенки свои иди затирай своим одноклассникам, за одно код стайлом похвастаетесь друг перед другом и подрочите на брудершафт, попивая смузи. Хррррртьфу!
Аноним 11/01/20 Суб 08:22:05 1569504494
Кстати как раз в жыесе и практикуется эта хуйня с однострочным ифом без скобок. Работая с си я такое видел только в либо стрёмном впопенсорце/всратом эмбеде из 90-ых (ну где нет никаких норм по кодстайлу), либо в коде который писали вчерашние студенты, так что господа сверху правы - с буйствующим гринтекстером все понятно.
Аноним 11/01/20 Суб 12:11:34 1569527495
Ты можешь быть истинно свободным только в рамках существующей системы правил. Либо это будут твои внутренние нравственные ограничения, либо навязанные обществом законы. Существующие правила позволяют не думать и не выбирать из множества альтернативных выборов. Так как выбора нет. Это повышает твою продуктивность и эффективность в конечном счете. Об этом, кстати, еще депутат Музулина постоянно толкует.
Поэтому если вы примете правило 80 символов в строке, функции в 25 строк, плюс строгий код-гайл, вы только выиграете. Вот.

Аноним 11/01/20 Суб 13:41:02 1569614496
>>1569394
Спасибо. Ну и сложно пиздец это конечно.
Аноним 11/01/20 Суб 16:39:10 1569967497
>>1569504
Нахуя ты сам себе противоречишь? Пизда, жсобляди все такие тупые?
Аноним 11/01/20 Суб 16:46:29 1569983498
>>1569967
говно спорило с мочей
Аноним 11/01/20 Суб 17:00:35 1570017499
>>1569983
А ты, ебать, кто такой? Из какой параши залетел?
Аноним 11/01/20 Суб 18:02:26 1570067500
>>1569527
Иди в тред Паскаля, хомяк.
Аноним 11/01/20 Суб 21:00:49 1570228501
Аноним 11/01/20 Суб 22:30:23 1570299502
>>1570228
А можно создать список и сразу в нём инициализацию переменных сделать? а то у меня получается только создать их, а инициализацию нельзя. ну типа создать список с интеджерами уже известными.
Аноним 11/01/20 Суб 22:34:33 1570304503
>>1570299
Не понял твой вопрос. Ты когда память новому элементу выделяешь, тогда и "инициализируешь" его. Если тебе нужно его каким-то дефолтным значением после создания забить, то берешь и указываешь нужное. Но только нахуя это? Когда элемент добавляешь, тогда и выделяй память + значение нужное вбивай.
Аноним 11/01/20 Суб 22:44:14 1570314504
>>1570304
Ну щас объясню тебе. Подожди, пожалуйста, открою визуалку.
Аноним 11/01/20 Суб 22:50:36 1570318505
Capture.PNG (4Кб, 340x156)
340x156
>>1570304
вот. у меня список я туда могу поместить какие-то переменные, но сразу им значения присовить не могу. не даёт. почему?
Аноним 11/01/20 Суб 22:53:29 1570320506
>>1570318
Про структуры почитай. Это не список. Список - это колбаса из элементов типа этой структуры, которые связаны между собой.
Аноним 11/01/20 Суб 22:55:38 1570322507
>>1570320
я так понимаю мне нужно прочитать самую первую книжку из оп поста от двух авторов?
Аноним 11/01/20 Суб 22:59:56 1570326508
>>1570322
Ты тролль? Я тогда вообще не понимаю, как ты до списков дошел. Инфы, повторю, дохуя. Не обязательно книжку, можно статьи по мере надобности читать. Но для тебя, похоже, лучше действительно книжку от корки до корки прочитать, если цель изучения стоит. А если написать список, то читаешь про структуры, указатели, функции.
Аноним 11/01/20 Суб 23:03:00 1570329509
>>1570326
Я слез с питона недавно и там списки очень просто делались,а здесь я охуеваю. Да, хочу выучить язык нормально.
Аноним 11/01/20 Суб 23:10:09 1570335510
>>1570329
>Керниган,Ритчи - Программирование на C
Аноним 11/01/20 Суб 23:17:15 1570342511
>>1570335
понял. съебался уже отсюда читать книгу. там кстати ещё и перевод на русский есть вообще шикарно и упражнения это всё радует.
ПЕРЕКАТ Аноним # OP 12/01/20 Вск 02:43:28 1570502512
Аноним 13/01/20 Пнд 12:51:03 1571562513
>>1569411
Чё посоветуешь? где качать?
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов