Задать вопрос
  • Как реализовать Оператор OR в команде FOR?

    @res2001
    Djasar, да хоть 100 файлов - цикл один, главное, чтоб файлы попадали под маску
  • Почему архиватор работает только с текстовыми файлами?

    @res2001
    Jden10, Хотите работать с бинарными файлами, не используйте нигде std::string. Вектор байтов ваше все.
    И может быть даже и вектор не нужен, а можно обойтись массивом фиксированного размера (std::array) - будет работать быстрее.
  • Как сконфигурировать монтирование дисков в linux, чтобы при клонировании на другой hdd система запустилась?

    @res2001
    vl-roma,
    Есть подозрение что не может смонтироваться так ориентируется на UIDD

    Что это значит? Для снятия подозрений надо просто открыть fstab и посмотреть глазами.
    Если в fstab исходного диска разделы монтируются по UUID руками поправьте его на монтирование по именам.
  • Как в *.cmd после findstr произвести математические вычисления?

    @res2001
    Роман,
    Результат:
    "RAM= GB"

    Из того что вижу в вашем коде у первого findstr не задано выражение поиска. findstr нужна чтоб что-то искать в тексте. Что она будет искать у вас не задано. Скорее всего findstr завершается с ошибкой.
    Просто запустите эти команды в консоле вне батника и посмотрите что будет в результате.

    Арифметика в батниках возможно только с помощью set /a
    Для справки:
    findstr /?
    set /?
    for /?
    setlocal /?
  • Как создают интерфейсы в программах?

    @res2001
    В самом Си никаких окон нет, как нет их и в С++ и во многих других ЯПах. Но это и не задача ЯП.
    Рисование окошек и элементов управления принципиально ничем особенным не отличается от любых других системных функций, предоставляемых ОС.

    Функционал GUI предоставляет ОС (в случае никсов не ОС, а X11, но это не принципиально). В приложении на любом ЯП вы просто можете использовать базовый функционал ОС. ОС (и Х11) свой функционал предоставляют в виде набора стандартных библиотек, которые вы подключаете к своему приложению на Си (или любом другом ЯП).
    Но обычно, использовать базовый функционал сложно (или мало плюшек или плюшки еще сложнее использовать или много кода или хочется ООП и т.п.), поэтому вокруг базового функционала написано куча дополнительных библиотек, которые упрощают использование GUI и возможно дают что-то сверху.
    Во многих современных библиотеках реализуют кросс-платформенный вариант GUI, основываясь на базовом функционале для каждой конкретной платформы. Например Qt, wxWidgets и т.д. и т.п.
    Сейчас на Си писать GUI не слишком популярно, но, конечно, никто не запрещает это делать. Если очень надо, то лучше использовать С++ или C#.
  • Есть ли способ быстро выравнивать адреса?

    @res2001
    jcmvbkbc,
    увеличивает адрес, даже если он уже был выровнен

    И точно. Даже 1 раз попадал, похоже, на эту ошибку, что приводило к выходу за гранцы буфера. Каким-то костылем тогда вышел из положения, но причину не понял. Спасибо!
  • Есть ли способ быстро выравнивать адреса?

    @res2001
    Герман,
    позволю себе спросить ещё вот что: можно ли выравнять адрес до ближайшей к нему степени двойки (в большую сторону)? 1000 -> 1024, 3000 ->4096 и т.д.

    Есть быстрый алгоритм нахождения ближайшей большей степени двойки для числа. В данном случае адрес можно рассматривать как целое число.
    Найти его можно тут: https://github.com/gibsjose/BitHacks/blob/master/B... среди других подобных алгоритмов. Там правда он рассчитан на 32битное целое, но по аналогии его можно привести к 64битному.

    Для выравнивания адреса я использую обычно этот вариант:
    addr = (addr | (alignment - 1)) + 1;
    Где alignment - степень двойки.
  • Округление при подсчёте в С++?

    @res2001
    Miroslav Bodrich, У тебя сейчас x на 21 шаге больше, чем endX из-за специфики чисел с плавающей точкой. Поэтому цикл завершается раньше времени.
    Измени условие выхода из цикла, посчитай целое количество шагов и цикл поменяй на for с заданным количеством шагов.

    И если считать x как предложил jcmvbkbc, то погрешность результата будет меньше, чем если использовать сложение (как сейчас).
  • Округление при подсчёте в С++?

    @res2001
    Что выводит то? Покажи 21 шаг. Кстати, вполне можно текстом подобные вещи выкладывать, картинки тут не приветствуются, да и не удобно с ними.
    И вообще не нашел, чтоб в коде было какое-то округление.
  • Как написать типизированную обёртку над простым тред-пулом?

    @res2001
    Если чем-то не устраивают стандартные фьючи и прочая обвязка, то можно посмотреть как они реализованы.
    https://en.cppreference.com/w/cpp/thread
  • Как убрать ошибку NMAKE: fatal error U1077 при изменении кода в среде Clion?

    @res2001
    MikhailZarevich, Когда запускаете любую программу, то не нужно ее файл открывать для записи - достаточно только чтения.
    cl.exe - программа, clion должен ее запустить с параметрами, что она собрала вам новый исполняемый файл из ваших исходников, который бы он мог запустить.
    Почему у вас cl.exe пытается открыться для записи не ясно. Это какой-то нонсенс.

    Попробуйте собрать код из командной строки, запустив командную строку от MSVS (ярлык для ее запуска ставится вместе с MSVS и находится в папке студии в меню Пуск). Например так:
    cl <имя вашего cpp файла>
    Если это пройдет нормально, а оно должно быть так, то и из IDE то же должно быть все хорошо, т.к. IDE делает примерно то же самое.
  • Как убрать ошибку NMAKE: fatal error U1077 при изменении кода в среде Clion?

    @res2001
    MikhailZarevich,
    не удается открыть CL.exe для записи

    Зачем вы открываете компилятор для записи? Cl.exe - микрософтовский компилятор.
    Если собирать код из командной строки вручную, такая же ошибка?
  • Не видит библиотеку, что делать?

    @res2001
    У меня, кстати, тут оба варианта ncurses присутствуют и ncurses и ncursesw.
    Содержимое на первый взгляд идентично.
  • Не видит библиотеку, что делать?

    @res2001
    XerimHD, В каталоге /mingw64/include/ncursesw есть ncurses.h?
  • Не видит библиотеку, что делать?

    @res2001
    XerimHD, Тут уже достаточно информации, чтоб начать правильно собирать с ncurses.
    Добавьте опций компилятору:
    -DNCURSES_WIDECHAR -I/mingw64/include/ncursesw -lncursesw -lsystre -ltre -lintl -liconv
  • Не видит библиотеку, что делать?

    @res2001
    XerimHD,
    все равно не может найти

    Package ncurses was not found

    Видимо у вас установлен конфиг файл для pkg-config с именем ncursesw. Предполагаю, что это вариант с поддержкой Unicode (не пользовался ncurses, не знаю ее нюансов).
    Конфиг фалйы для pkg-config лежат в /mingw64/lib/pkgconfig, файлы *.pc. Поищите файл относящийся к ncurses.
    Загляните в каталог(и): /mingw64/include/ncurses*
    Посмотрите глазами на вывод команд
    pkg-config --cflags --libs ncurses
    pkg-config --cflags --libs ncursesw

    Попробуйте сделать правильные выводы.

    Посмотрите глазами файл библиотеки:
    ls /mingw64/lib/libncurses*

    Тут указываю каталоги, начинающиеся с /mingw64 в предположении, что используете этот компилятор. В msys2 их несколько.

    Скиньте сюда команду которой собираете проект.

    Дополнительно можете посмотреть какие пакеты ncurses установлены и какие вообще есть в пакетном менеджере:
    pacman -Ss ncurses
    И можете установить дополнительно то, что считаете нужным:
    pacman -S <имя пакета>
  • Скомпилированный в GCC exe файл вылетает досрочно?

    @res2001
    Александр Попов, Добавлю немного.
    Используйте assert везде где возможно для проверки предусловий и может быть постусловий в функциях. Хорошо расставленные ассерты сильно облегчают поиск ошибок.
    Например есть смысл в каждой функции проверять корректность полученных параметров.
    assert используется только в отладочной версии, в релизной версии ассерты не нужны, поэтому они не будут влиять на производительность и т.п. Ассерты отключаются добавлением опции компилятору -DNDEBUG.
    https://en.cppreference.com/w/c/error/assert
  • Почему при открытии приложения оно появляется в диспетчере задач, но не на панели задач и как это исправить?

    @res2001
    На панели задач видны приложения с окнами, которые можно увидеть на экране.
    Видимо приложение зависло (или ошибка) еще до создания своего окна.

    Чтоб исправить нужно понять причину. Возможно приложение пишет какой-то лог, в котором можно увидеть чем оно занимается или какая произошла ошибка. Или, например, приложение может писать свои ошибки в журнал винды.
    Можно попробовать обновить приложение на более актуальную версию.
    Так же можно попробовать посмотреть дисковым монитором к каким файлам обращается приложение. Или то же самое но с монитором реестра. Это может косвенно помочь в поиске причины ошибки. Можно использовать соответствующие утилиты из пакета Sysinternals Suite - раздается микрософтом бесплатно.
    Если ничего не помогает - обращаться в поддержку к разрабам.
  • Почему адреса клиентов роутера начинаются не с нулей?

    @res2001
    historydev, Максимальный адрес, который можно назначить узлу в сети 10.255.255.254
  • Почему адреса клиентов роутера начинаются не с нулей?

    @res2001
    Не 0 и 255, а первый и последний адрес хоста. Например при маске 8 первый адрес будет 10.0.0.0, а последний 10.255.255.255 (где 10 - адрес подсети, остальное адрес хоста). Маска не обязана быть кратной 8 и тогда последний адрес хоста может быть совсем не 255.