• Как правильно сделатьзапись в файл сгенерированного пароля?

    @none7
    for (int i = 0; i < 6; ++i) {
          rNum = rand() % sizeof(alphanum);
          file << alphanum[rNum];
    }

    У тебя тебя sizeof(Login::password) == 90, так откуда взялось 6? Кто будет дописывать остальные 84 байта? Кстати sizeof(alphanum) больше на 1 чем ты ожидаешь потому, что в Си все строки оканчиваются символом '\0'. Поэтому есть вероятность, что alphanum[rNum] == '\0'.

    P.S. Если файл "login.data" уже существует к моменту readfile.open() и он больше чем нужно, то его размер останется прежним. А на хвосте файла будет чёрт знает что, мусор.
    Ответ написан
    Комментировать
  • Посредством чего блокирует сайт мой провайдер?

    @none7
    Если бы он стёр DNS-запись, то Вы бы не получали вообще ничего, кроме сообщения от браузера о не работающей сети. Ваш же провайдер настроил NAT, на блокируемые адреса и весь трафик идущий на ip vk обрабатывается сервером провайдера, в том числе и пинг. Задержка в 1 миллисекунду это отлично показывает, так как такое бывает лишь в пределах города, а CDN у vk нет.
    Ответ написан
  • Как подружиться с IPv6?

    @none7
    Насколько я знаю, дело не в хостинге, просто требуется корректная работа с NAT64. Когда IPv4-адрес мобильнику вообще не выдаётся, а доступ к IPv4-only ресурсам осуществляется через создание фальшивых DNS AAAA-записей. И если Ваше приложение отказывается работать в таких условиях, то Apple его блокирует.
    Ответ написан
    Комментировать
  • Как записать структуру в файл на языке C++?

    @none7
    Операторы >> и << очень капризны. И char[300] они распознают как char*. Может случиться переполнение буфера если символов больше 300 и чтение или запись будет остановлено если встретится символ пробела, конца строки или \0. Соответственно при записи пишется не 300 байт, а до разделителя. При чтении никаких разделителей не встретится так, что всё будет прочитано всё в первую структуру и может произойти переполнение буфера. Используйте istream::getline(void), istream::read(char* buf, streamsize n), ostream::write(const char* buf, streamsize n);
    Вообще лучше не смешивать Си и С++, по всюду будут вылазить те или иные баги. Вместо char[300] std::string, вместо массивов std::array или std::vector. От фиксированной длины тоже желательно избавиться и сириализовать данные скажем в .csv
    Ответ написан
    Комментировать
  • Как преобразовать string к wstring?

    @none7
    Дело не в коде, дело в компиляторе MS. Если Вы преобразуете кодировку документа в UTF-8 без BOM, то код будет(вероятно) работать как и должен. "Вероятно" потому, что даже без BOM он может догадаться, что документ в UTF-8. И тогда компилятор непременно преобразует все char[] строки из UTF-8 в системную ANSI кодировку.
    Ответ написан
    Комментировать
  • Семантика типов в Си и C#?

    @none7
    Не совсем. Ссылка не может указывать чёрт знает куда, только на объект соответствующего типа или быть нулём(null). Добавочно ссылочный тип всегда проверяется на не равенство нулю при вызове из него метода. То есть внутри метода this == null всегда ложно. В С# есть и обычные указатели, но только в небезопасном режиме.
    Ответ написан
    Комментировать
  • Есть ли смысл использовать inline-функцию?

    @none7
    Приватный или нет, это важно лишь на уровне проверки исходного кода. Оптимизатор же должен только выдать код, результат которого во время выполнения будет идентичен ожидаемому. Есть ли смысл? Gcc сам сделает inline столь короткого метода во время компиляции, если увидит его реализацию, но полагаю может возникнуть конфликт во время линковки, если один и тот же метод без inline будет подключаться к нескольким файлам. MSVC сам оптимизирует этот участок во время линковки даже если компилятор не видел реализации соответствующего метода.
    Ответ написан
    Комментировать
  • Microsoft Compatibility Telemetry, почему диск загружен на 100 процентов?

    @none7
    Благодаря таким фичам, Windows 10 без SSD диска лучше не ставить. В вашем же случае можно только вырубить все намёки на телеметрию в планировщике заданий. И ждать когда очередное обновление, включит его вновь.
    Ответ написан
    2 комментария
  • Как получить ID кнопок созданных через CreateWindow() WinAPI?

    @none7
    Полагаю вам нужен GetWindowLong(hButton, GWL_ID), но умолчанию там могут быть и нули. Для shared_ptr нужен класс обёртка CWnd, который в своём деструкторе уничтожит окно. Если не хотите использовать MFC, то пишите аналог сами.
    Ответ написан
    Комментировать
  • Превышение объёма памяти в C#?

    @none7
    Если выводить в файл это единственное, что нужно делать с данными, то лучше генерировать их по необходимости. Так памяти много не понадобиться.
    public static IEnumerable<string> GetNumbersRange (int numberLength, int start, int end)
    {
        string format = "D" + numberLength;
        for (int i = start; i < end; i++)
            yield return i.ToString(format);
    }
    
    public static IEnumerable<string> GetOperatorNumbers(IEnumerable<string> operators, IEnumerable<string> numbers, int countryCode)
    {
        string Country = "";
        if (countryCode > 0)
        {
            Country = DATA.Code[countryCode].ToString();
        }
    
        foreach (var op in operators)
            foreach (var num in numbers)
                yield return Country + op + num;
    }
    
    File.AppendAllLines("file.txt", GetOperatorNumbers(...));
    Ответ написан
    2 комментария
  • Создаю субдомен: какой IP Address указывать для Child Name Servers?

    @none7
    DNS это распределённая база данных со строгой иерархией, переводящая доменные имена в ресурсные записи(IP, mail и т.д.). NS записи указывают доменные имена DNS-серверов ответственных за нужную запись или домен. И нужны они только для передачи ответственности за домен другому серверу. Так же если имя указанного DNS-сервера находится в том же домене, что и запрашиваемое имя, то необходимо указать IP-адрес DNS-сервера. Просто наличие лишней точки в имени не создаёт необходимости передачи субдомена другому серверу.
    CNAME же существует для создания альтернативных имён. Если создать запись test.example.net. CNAME www.google.com, то при попытке получения IP-адреса Web-сервера, будут выданы IP-адреса имени www.google.com. То есть test.example.net. станет альтернативным именем для www.google.com.
    Насколько я понял Вашу ситуацию, Вам необязательно нужно создавать субдомен, достаточно записей sub.example.net CNAME na-west1.surge.sh. и www.sub.example.net CNAME na-west1.surge.sh.. Если же Вам делегирован только субдомен и нельзя создавать произвольные записи, то можно найти dns-хостинг, полно их бесплатных.
    Ответ написан
    2 комментария
  • Как вставить фрагмент html в нужное место html кода посредством php?

    @none7
    Потому, что echo внутри Menu() вызывается раньше echo внутри Head. Логично же, что до завершения конкатенции, echo в Head отработать не может. Так же Menu() не возвращает строку, а только выводит её через echo, поэтому внутрь html-кода вставляется пустая строка. Простейший вариант в том, чтобы просто убрать конкатенцию. '.Menu().' => ',Menu(),' . Так вызовы echo будут в нужном порядке. Также можно в Menu(), echo заменить на return.
    Ответ написан
    Комментировать
  • Как убрать лишние символы при декодировании Gmail письма из Base64Url?

    @none7
    и из-за чего они появляются?

    Content-Transfer-Encoding: quoted-printable

    Как убрать / заменить на правильные эти символы

    Encoding.ASCII.GetBytes(s);
    paste.org.ru/?4bdcz7
    Encoding.UTF8.GetString(bytes);
    Но правильней, скормить парсеру MIME.
    Ответ написан
    Комментировать
  • Как работать с каждым объектом DOMElement/DOMNode?

    @none7
    Через DOMNode::childNodes. В котором хранится DOMNodeList и через который можно получить ВСЕ дочерние элементы включая элементы DOMText и даже DOMComment. Что есть, что можно узнать через DOMNode::nodeType. В вашем случае DOMDocument принудительно обернёт весь $content в теги html и body, поэтому Вам и предлагали использовать DOMXPath(/html/body/*).
    Ответ написан
    2 комментария
  • Как с помощью DOMDocument() перебрать все HTML-теги первого уровня в переменной?

    @none7
    $doc = new DOMDocument();
    $doc->loadHTML($content);
    $xpath = new DOMXPath($doc);
    $nodes = $xpath->query("/html/body/*");
    
    foreach($nodes as $node)
        echo $node->nodeName, "\n";
    Ответ написан
    Комментировать
  • Вывод ПК из ждущего режима с помощью "магического" пакета, что такое магический пакет?

    @none7
    Маловероятно, что это Wake on Lan. Обычно виновниками выступают различные задачи из «планировщика заданий». Уточнить, что именно разбудило можно введя в консоли: powercfg -LASTWAKE.
    Ответ написан
    2 комментария
  • Как ускорить работу стека построенного на массиве размером 100М элементов?

    @none7
    Это невозможно! В тесте метод inc выполняется 108 раз. В среднем считывая по 2 * 108 байт данных за 1 проход. Даже если этот массив будет считать видеокарта GT 970, она сможет переварить чуть больше 1000 вызовов inc в секунду в среднем. В условие секунды можно вписаться если только переписать тест и класс и свести все 555 + 555 + 555 + 555 + ... в один 555 * n.
    Ответ написан
    5 комментариев
  • Почему данный код блокирует UI?

    @none7
    А дело точно не в строчке tbLeft.Text = content; ? Обычные TextBox плохо переваривали большие объёмы текста. И эта строчка точно будет блокировать UI.
    Ответ написан
    1 комментарий
  • Кто жрёт процессор?

    @none7
    Служба обновления довольно прожорливая даже с установкой всех возможных обновлений. К счастью это происходит только сразу после установки обновлений и не слишком долго. Просто на многоядерных процессорах пользователи вообще этого не замечают. Да и происходит установка обычно только раз в месяц. Если эта служба грузит процессор каждый день и более 10 минут, то это именно отсутствие патча о котором писал MaxKorz. И даже если нет этого патча, центр обновлений сам его поставит если включено авто-обновление, но на это вполне может уйти часов 10 100% загрузки ядра.
    Ответ написан
    Комментировать