• Можно ли в С++ стрингу преобразовать в тип?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    В С++ нет такого способа. Но можно завести мапу стрингов к фабрикам функций, зарегистрировать в ней все функции, и по имени доставать.
    Ответ написан
    Комментировать
  • Что делает оператор ":" в этом случае в c++?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Это называется секцией инициализации. В этой секции можно самостоятельно инициализировать поля создаваемого объекта еще до передачи управления в тело конструктора.

    Еще начиная с C++11 в секции инициализации можно указывать делегирование конструкторов. Выбранный конструктор будет так же выполнен до входа в тело текущего конструктора.
    Ответ написан
    1 комментарий
  • Как подключить компьютеры по локальной сети с несколькими роутерами?

    Zoominger
    @Zoominger Куратор тега Системное администрирование
    System Integrator
    Сделать на центральном DLink DHCP-сервер, на остальных роутерах перевести в режим DHCP relay.
    Все ПК получают IP автоматически.

    В сети есть DHCP на Windows? Если да, то схема будет другой.
    Вопросы?

    P. S. Ненавижу, когда кто-то выдаёт себя за девушку, чтобы получить ответ на вопрос. Если бы заметил сразу - не ответил бы.
    Ответ написан
  • Какая существует лучшая литература про Linux?

    @vlarkanov
    Брайан Уорд, "Внутреннее устройство Linux", 2016
    Очень хорошо и подробно написано, читается легко.
    Ответ написан
    3 комментария
  • Какой маршрутизатор купить для дома?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Судя по схеме вам нужен простой свитч, тогда берете любой и 2 потребителя, допустим телек и плойку, вывешиваете на него, хватит и 5ти портовика, если сильно расширяться не собираетесь, будет возможность подцепить 7 устройств.
    Если хотите умощнить маршрутизатор, то идеальным вариантом будет Zyxel Keenetic Ultra II
    Ответ написан
    Комментировать
  • Компиляция в QT?

    myjcom
    @myjcom
    какой компилятор из списка выбрать?

    Никакой, поддержка XP закончилась на Qt 5.5 5.6 (LTS)
    https://wiki.qt.io/PlatformSupport
    5.12 -> https://doc.qt.io/QT-5/supported-platforms.html
    5.6 -> Windows XP (32-bit) Deployment only https://doc.qt.io/archives/qt-5.6/supported-platfo...
    остается 5.5
    как собрать/заставить работать - можно нагуглить, но у всех по разному, зависит от окружения.
    например ссылка
    Ответ написан
    Комментировать
  • Почему не работает ROI OpenCV?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Потому что вырезали изображение с 100 по 100 пиксель по y и с 200 по 200 по x

    img[y:y+h, x:x+w]
    Ответ написан
    Комментировать
  • Обмен сокетов между Python и Java?

    igorzakhar
    @igorzakhar
    Сокет - это абстракция операционной системы, некая структура данных ядра, которая не зависит от языка программирования. Вы можете написать сервер на одном языке, а клиент написать на другом языке. Программа-"сервер" создает слушающий сокет (listen), программа-клиент, написанная на другом ЯП, подключается (connect) к серверу.
    Ответ написан
    2 комментария
  • Можно ли прокинуть сетевой кабель в 1 гбит между двух ноутов?

    sashkets
    @sashkets
    Прекратил отвечать после 24.02.2022
    так а в чем проблема то?
    берем кабель не ниже cat5, если сетевые умеют автосогласование, то обжим может быть прямой, если нет, то придется делать перекресный обжим кабеля, ну и на интерфейсах даем адреса из одной подсети, компы должны входить в одну рабочую группу

    еще можно на принимающем нотике поднять фтп-сервер (быстрее фтп-протокола ничего еще не придумано) или выполнять между нотиками синк, чтоб копировать только измененное

    п.с.
    ясно, что Вам там виднее
    Ответ написан
    Комментировать
  • Что нужно для нормального функционирования компьютерного клуба?

    GavriKos
    @GavriKos
    90-е нужны для нормального функционирования комп. клуба. Сейчас это вряд ли кому то нужно.

    Ну а по факту: вы забыли админа, лицензии на ОС, ПО и игры (надо читать что там сейчас в стиме том же - скорее всего только для личного пользования), нормальный свич (а не хаб) - недешевое удовольствие на 20-30 портов. Не помешают простейшие средства защиты от перепадов напряжения.
    Сервер кстати я прям хз зачем нужен.

    Ну и естественно - куча геммороя с пожарной безопасностью, вентиляцией, и прочим.
    Ответ написан
    10 комментариев
  • Почему программа работает неправильно?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    почему я неправильно ссылаюсь к указателю в структуре?
    zmienna_strukt.a=NULL;
    ...
    scanf("%s", wsk->a);

    Ссылаешься правильно, но указатель указывает в NULL. Читать туда scanf'ом нельзя. Чтобы можно было читать -- надо чтобы указатель указывал в выделенную память достаточного размера. Например так:
    struct morgan zmienna_strukt;
        struct morgan *wsk;
        unsigned char buf[100];
    
        wsk=&zmienna_strukt;
    
        printf("Впиши значение: ");
        fflush(stdout);
        scanf("%d", &zmienna_strukt.b);
        printf("%d \n\n", zmienna_strukt.b);
    
        zmienna_strukt.a=buf;
        buf[0] = 0;
        printf("%s \n\n", zmienna_strukt.a);
    
        printf("Впиши значение: ");
        fflush(stdout);
        scanf("%s", wsk->a);
        printf("%s \n\n", wsk->a);
    Ответ написан
    1 комментарий
  • Как перевернуть рандомный массив в СИ?

    myjcom
    @myjcom
    Из того в чем вопрос и что написано непонятно что вы хотите.

    если у вас 2 массива просто скопируйте один в другой в обратном порядке.

    если у вас один массив то можно написать функцию reverse(first, last) и свопнуть элементы.

    в обоих случаях один цикл.

    Code
    #include <stdio.h>
    #include <stdlib.h>
    
    void swap(int* a, int* b)
    {
        int c = *a;
        *a = *b;
        *b = c;
    }
    
    void reverse(int* first, int* last)
    {
        while((first != last) && (first != --last))
        {
            swap(first++, last);
        }
    }
    
    int* reverse_copy(int* first, int size)
    {
        int* result = (int*)malloc(size * sizeof(int));
        for(int i = 0; i < size; ++i)
        {
            result[i] = first[size - i - 1];
        }
        return result;
    }
    
    int main()
    {
        int a[] = {0,1,2,3,4,5,6,7,8,9};
        reverse(a, &a[10]);
        for(int i = 0; i < 10; ++i)
        {
            printf("%d ", a[i]);
        }
    
        printf("\n");
    
        int* b = reverse_copy(a, 10);
    
        for(int i = 0; i < 10; ++i)
        {
            printf("%d ", b[i]);
        }
        free(b);
    }

    OUT:
    9 8 7 6 5 4 3 2 1 0
    0 1 2 3 4 5 6 7 8 9

    Ответ написан
    Комментировать
  • Почему if в массиве работает не так как нужно?

    @Wexter
    if(a[i]=b[i])

    Вы либо присваивайте, либо сравнивайте
    Ответ написан
    3 комментария
  • Ввод длины значения массива?

    @res2001
    Developer, ex-admin
    То как вы хотите определить массив называется VLA (массив переменной длины).
    Эта шутка появилась только в C99 и выше. В С++ их нет.
    Но даже и в программах на Си не все компиляторы их поддерживают, например в MSVC, по моему, до сих пор не реализовано. Правда микрософт и не заявляет о полной поддержке стандартов Си.

    Так что в С++, как уже было сказано в комментариях, используйте либо динамические массивы, либо std::vector.
    Ответ написан
    Комментировать
  • Библиотека для обработки изображений, что выбрать?

    @dmshar
    OpenCV (https://opencv.org/)
    Реализована на C/C++, поддерживается работа с Python, Java, Ruby, Matlab, Lua, PHP и пр.
    Универсальная библиотека работы с изображениями с открытым исходным кодом. Номер 1 по распространенности.
    Ответ написан
    Комментировать
  • Функция recv взращает ошибку при работе с сокетом?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В моём случае recv взращает -1, что говорит о том что произошла ошибка, какая и почему?.

    Зря вы спрашиваете у нас -- спрашивайте у него. errno, perror, вот это всё.

    Хотя в данном случае всё очевидно:
    while(int s1 = accept(sock, 0, 0)) //принимаем соединения для работы с ними
        {
            int k = recv(sock, &buff, sizeof(buff), MSG_NOSIGNAL);

    -- новое соединение установлено на сокете s1, а recv читает из sock.
    Ответ написан
    Комментировать
  • При создании экземпляра класса в методе и воз ращение происходит ошибка?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert

    Socket* Socket::accept() {
                /*    ГДЕ то тут инициализирую   this->address = str_addr; // 127.0.0.1
               */
                return new Socket(client_sock_id);  
      }
      // ВЫЗЫВАЮ ЗДЕСЬ
      Socket *c = s.accept();
    // с->getAddress()// выходят русские буквы МММ....-штук под 100 или больше

    надеюсь что я что-то не правильно делаю.

    Ты задаёшь вопрос о поведении кода, но не показываешь сам код. Откуда нам знать, что это за класс Socket, что это за str_addr и как ты выводишь в том месте, где выходят русские буквы?
    Исправь сначала это.
    Ответ написан
    Комментировать
  • В чем отличия C++ и C# ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Тут все пишут про отличия. Рискну написать про сходства.

    Во-первых, о чём бы ни писала Елена и Си++ и C# - оба языки общего назначения. Даже больше, оказывается - C# ни разу не заточён под объёмную библиотеку (или фреймворк) .NET, однако с ним намного, много проще. Но если таки учитывать .NET, то для Си++ есть Boost и Qt, так что здесь скорее паритет - библиотек для обоих хватает.
    Во-вторых, сложность разработки на Си++ часто преувеличена. Разве только дисциплины надо поболее - выстрелить в ногу здесь попроще. Однако при этом Си++ будет чутка более гибкий и без танцев с бубнами unmanaged код не запустить на C#. Если внезапно потребуется.
    В-третьих, оба языка, раз они общего назначения, таки мультипарадигмальные. То есть они реализуют большинство практик. И хотя Си++ развивается довольно медленно, сейчас Си++ резко догнал C# в плане нереализованных фич (здесь как минимум лямбды). Ну и метапрограммирования у Си++ поболее будет (наглая ложь).
    В-четвёртых, оба языка кроссплатформеные. Впрочем, C# будет более кроссплатформенный, чем Си++. Разве только тот же Qt резко стёр границы, но это не значит почти ничего - C# компилируется в тот же самый CIL для всех платформ, Си++ - в совершенно разный код для разных платформ (i386, amd64, ARM Cortex-AXX).
    Наконец, в пятых, синтаксис у них действительно очень похож. Оба языка принадлежат к семейству Алгол-подобных, так что и брейсы, и остальные скобки здесь имеют примерно одно предназначение.

    Различия, которые казалось бы делают языки совершенно разными, таки не столь принципиальны на том уровне абстракции, на котором был задан вопрос. А различия действительно колоссальны: C# - managed код, что означает, что скомпилированный код будет исполнятся не на прямую в CPU, а на специальной виртуальной машине. Это съедает производительность, но сильно облегчает перенос кода. Ну и потом, C# - полупроприетарный ответ Java (что интересно, так как получается, что C# - более свободный, чем Java), которая была создана как замена сложному и небезопасному C++ в том числе.

    В общем, как человек, который начал давно с C#, продолжив C++ и по пути изучив Python, Java, D и другую ООП-чушь могу с уверенностью сказать, что разницы в общем-то и нет... То есть придётся немного проникнуться в чуть другую философию и выяснить, какие проблемы более новый язык пытался решить. Но если подходить к этому, как подошёл lookid, то это скорее не как изучать языки одной языковой группы, а как изучать один и тот же язык в разное время или в разных сферах.

    Почему так? Потому что ООП... Оно как бы ООП, ничего сверхъестесственного ни один язык не предлагает, это не Haskell, и тем более не Brainfuck. Так что принципиально общие вещи в них будут. То подмножество, что реализует машину Тьюринга - у них общие. Сами посмотрите: циклы, ветвления, передача аргументов, арифметика... С небольшими правками всё совершенно одинаковое. Да, Дмитрий совершенно прав, traits на C# не повторишь, ибо та аналогия будет уже не traits, однако... Это уже [programming_language] related, то есть это попытка совладать с особенностями.

    Немного пруфов: лично я ходящий пруф. Зная C++ и C# и немного Java я просто начал программировать на Python. При том, что Python даже алголоподобным не принадлежит. А всё потому, что логика одна и та же, хотя различий между Python и C(++|#) намного, много больше. Но не читая почти никаких туториалов, пройдясь галопом по европам с документацией сейчас я знаю python достаточно для серьёзного проекта.

    UPD. По поводу метапрограммирования... Таки рантайм рефлекшн шарпа тащит. И хотя ни макросов, ни шаблонов, ничего. Но изменять код на лету - это уже очень круто. По дефолту плюсы так не умеют, и хотя шаблоны с макросами тащат, сильно, очень сильно тащат и вытаскивают его, Си++, со дна, надо признать - рефлешн у шарпа будет поинтереснее. Извиняюсь за дезу.
    Ответ написан
    6 комментариев