Ответы пользователя по тегу C++
  • Как работает scanf в плюсах?

    @rPman
    char buf[256];
    fscanf(stdin,"%255[\n]",buf);

    язык разметки в scanf необычный но позволяет очень быстро парсить строки (например простые csv без экранированных ковычек и разделителей в строках, содержащих например числа).
    Ответ написан
    Комментировать
  • WinAPI :: Что происходит при закрытии программы в виндовс?

    @rPman
    wm_destroy это просто просьба к приложению, закрыть окно (не приложение)
    по неписанным правилам ui, в windows, по закрытию последнего окна приложения (их может быть несколько) само приложение должно быть закрыто.

    В вашем случае при отмене необходимо вернуть в return кажется true (посмотрите документацию) этим вы скажете вызывающей функции что процесс передумал закрывать окно и не будет его удалять. Смутно помню что вы должны были перед return еще какой то метод вызвать - обработчик событий окна по умолчанию, вот как раз при отмене закрытия его вызывать не нужно будет.
    Ответ написан
    Комментировать
  • Необходимо передать некий массив с одного процесса на другой, Как это сделать?

    @rPman
    разделяемая память, пайпы и memory mapped файлы
    для передачи событий - семафоры

    есть кросспатформенные библиотеки, например libevent
    Ответ написан
    Комментировать
  • Какие подводные в написании своего мини Total Commander?

    @rPman
    В зависимости от того, какой именно аспект Total Commander вы желаете повторить, такие проекты как целый город со своими улицами, подземками, мусорными свалками и гипермаркетами.

    Возьмите проект по проще.
    Ответ написан
    Комментировать
  • Работа с файлами в C++. Как считать построчно из файла такие строки?

    @rPman
    читайте файл построчно, затем удаляйте из строк пробелы
    Ответ написан
    Комментировать
  • Возможна такая схема встраивания скриптового языка?

    @rPman
    гугл выдал первой же ссылкой https://habrahabr.ru/post/197262/
    Ответ написан
    Комментировать
  • Как произвести очистку заголовочного файла C/C++?

    @rPman
    Готового решения нет, есть инструменты по синтаксическому анализу файлов на выбранном языке с последующим написанием приложения по работе с уже готовым деревом лексем.. в общем решение нудное и не красивое.

    Могу предположить что в итоге вам нужен файл с парами 'имя макроса' - значение, я решал это в два этапа, сначала получение списка необходимых дефайнов (в моем случае это решалось в полуавтоматическом режиме, работая с текстовыми файлами в редакторе + регулярные выражения и т.п.), а затем на основе списка этих строк я генерировал cpp код, который выглядел как print ("name =" + name + "\n"); для каждого дефайна, затем полученный код компилировался и запускался - в итоге он выводил мне в нужном мне формате список значений дефайнов.
    Ответ написан
    Комментировать
  • Дилемма выбора между C++ и Java

    @rPman
    Выбор между с++ и java (добавьте сюда .net c# ) это больше не выбор между языками программирования и синтаксическим сахаром, а выбор между фреймворками (библиотеками) которые идут вместе (или для) с этим языком как 'стандарт по умолчанию'.
    Тем более эти языки на столько похожи, они вышли то и одного лона 'старого c++'!

    А это значит выбирайте то что вам нравится, но будьте готовы просто выучить еще один фреймворк (и чуть чуть языковых конструкций), ведь программист, не готовый изучать что то новое… слабовато выглядит и заранее обречен на провал.
    Ответ написан
    1 комментарий
  • Сделал программный проект, базирующийся на Windows 7 Embedded, теперь надо обновлять все это дело?

    @rPman
    — я смешал в одной миске мороженное (его очень любят дети), мясной рулет с тушеной картошечкой (ммм, питательно), кофе и черный чай (я не знаю что больше любит заказчик), и пропустил его через миксер, чтобы влезло в тюбик. Теперь это завтрак для космонавтов.
    — я все правильно сделал?
    Ответ написан
    Комментировать
  • Почему sscanf использует запятую вместо точки при использовании русской локали в linux?

    @rPman
    Очень осторожно пишите программы, работа которых может зависеть от установленной локали, встречал людей, которые меняют параметры локали в windows очень причудливым образом.
    Везде, где возможна подобная неоднозначность принудительно прописывать параметры локали (как в windows так и в linux).

    В данном конкретном случае лучше постараться избежать сохранение и использование текстового представления таких неоднозначных вещей как вещественные числа и даты… первый же запрос в гугл на вашу задачу — сериализация вещественного числа в целочисленном представлении: stackoverflow.com/questions/4733147/portability-of-binary-serialization-of-double-float-type-in-c
    Ответ написан
    2 комментария
  • Быстрый blob для хранения файлов с компрессией

    @rPman
    Много мелких файлов только для чтения? уже отвечал на похожий вопрос:
    habrahabr.ru/qa/10694/#answer_46206
    Ответ написан
  • Высоконагруженный сокет-сервер?

    @rPman
    Я не специалист, но фраза 'какой из механизмов IPC выдержит' немного странная, какая разница, если в ОС штатно только один — message queue, shared memory и semaphore, что бы вы не выбрали, будет использовать их (особо кривые что то одно).

    Не совсем веб-проект, но для распараллеливания задачи пришлось использовать и очереди и семафоры (очень активное использование), рекомендую не передавать данные в очереди, она быстро кончается… максимум идентификаторы и подробности через shared memory или другие механизмы.
    Возможно, не стоит создавать один семафор на все, лучше под напрячься и по семафору на объект или хотя бы группу (чтобы блокировать только на доступ к группе а не всех ко всему) — этот подход может дать наверное максимально возможный прирост, когда упретесь в потолок (особенно грустно когда процессоры еще не нагружен и демоны чего то ждут), это в смысле организации многопроцессорного демона (или демон на ядро, так удобнее).
    Ответ написан
    2 комментария
  • С++ какой вид памяти использовать лучше и главное почему?

    @rPman
    самое важное отличие — когда вы пользуетесь malloc, то приходится делать приведение типа, в этот момент всю ответственность за корректность приведения берет программист, а значит потенциальное место для ошибок (причем си именно за это и ругают, так как ошибки получаются самые страшные), а если совсем избавиться от указателей (можно оставить ссылочные типы MyClass& a) то тогда за целостностью системы будет следить компилятор и писать 'не туда' вы не сможете.
    Ответ написан
    1 комментарий
  • Запуск С++ Linux библиотеки c OpenCV на другом компьютере

    @rPman
    это что за windows way?
    'положить необходимые библиотеки' это и есть 'установка', какие проблемы? на удаленном компьютере в репозитарии нет необходимой версии? найдите или соберите свою сборку под версию ту OS и передайте вместе со своей программой, если с той стороны боятся что ваша сборка что то порушит — пусть устанавливают библиотеки и программу в chroot копию самих же себя, скрипты этого дела из пары команд можете сами написать (sudo cp -rx / /chroot;sudo chroot /chroot;… хотя не, создание копии системы еще тот вопрос, лучше вместо cp -xr прописать список каталогов, гарантированно принадлежащих системе), но то, мне кажется, извращение

    p.s. если на удаленном компьютер не установлены драйвера, то ничего не получится… ставить их придется без вариантов.

    p.p.s. спросите их про тип видеокарты на той стороне и подготовьте свой демонстрационный дистрибутив в виде iso файлика (благо с поддержкой opencl это либо ati, либо nvidia, либо изредка intel), а уж прожечь компакт диск и запустить его сможет практически любой пользователь.
    Ответ написан
    Комментировать