Правильный, только скобки правильно расставь в выражении. В С++ как в математике с этим. В таком виде будет считаться последовательно слева на право.
Результаты итераций надо перемножить друг с другом и вывести итоговый результат, а не резултаты каждой итерации.
Если https://www.dnsleaktest.com/ показывает адрес YYY.YYY.YY.YY, то это значит, что в интернет вы ходите с этим адресом. Видимо, ваша ВПН работает не так как вы ожидаете.
Павел, По моему вам лучше перед сохранением данных сделать проверку - не изменились ли данные, и только если не изменились - сохранять. Если изменились - возврат пользователю с ошибкой "данные изменены".
У вас должна быть реализована операция сохранения типа CAS из многопоточного lock-free программирования. Т.е. проверка "не изменились ли данные" и если не изменились, то сохранить, должна быть реализована атомарно, иначе возможна ситуация, когда между проверкой и сохранением данные будут изменены другим пользователем.
jcmvbkbc, Санитайзер специфическая вещь. Сталкивался с ситуацией, когда он упорно давал ошибки в сторонней библиотеке (Си клиент mongodb). Ошибка была связана с какими-то специфическими вариантами выравнивания переменных, передаваемых в mongo (ситуация была 1.5 года назад, подробностей уже не помню). Ошибки не было 100%. Мой коллега тогда воспроизвел ошибку на тестовом коде, писал соответствующий багрепорт, но чем закончилась история я уже не в курсе. Тогда приходилось отключать санитайзер в некоторых модулях, хотя в проекте его использовали "по умолчанию".
Предпочитаю вещи, которые не изменяют код, типа valgrind. Гораздо приятнее в использовании Intel vTune, но он не бесплатный.
Zuoya, Так и понял.
В целях улучшения навыков будет очень не плохо изучить исходники хорошо написанного http парсера и научиться его использовать в своих проектах.
Умение читать и понимать чужой код очень важно сейчас, когда по максимуму стараются использовать уже готовые библиотеки.
Zuoya, При чем тут винда? :) Мой пост был для Михаил это он про винду писал.
Лично мое мнение - написать стоящую библиотеку достаточно сложно - HTTP нынче разросся до безобразия, очень сложно все охватить. Используйте готовый HTTP парсер. Я использовал в свое время http_parser от разработчиков libuv/node.js. Так же можно взять парсер из nginxа.
Есть и готовые "легкие" и свободные веб сервера на Си, которые можно переделать под свои нужды.
Владимир Коротенко, У меня не так много опыта работы с линуксом как хотелось бы.
В своей практике я не сталкивался с проблемами локализации в линуксе. В консоли UTF8, пишешь исходники в ней же - все довольны и счастливы. Но в целом использую другой подход - просто вывожу весь текст на английском. Не патриотично, зато работает и легко реализуется :-)
argumentvoid, У вас не русская винда? Ваша ситуация еще более сложная, т.к. кодировка по умолчанию не русская.
chcp меняет кодировку до следующей chcp или до перезапуска консоли.
Где-то в глубине языковых настроек есть такая настройка "Language for non-Unicode programs" (у меня английская винда). Поставьте в этой настройке Русский язык, перезагрузитесь и кодировка консоли должна стать cp866.
argumentvoid, Посмотрите файл cpp проекта другой программой, поддерживающей разные кодировки.
Например редактор Far manager это умеет или Notepad++. Убедитесь, что кодировка исходников cp866. Убедитесь по дате создния exe что он создан после последнего сохранения cpp файла.
После этого дайте в консоли команду chcp - она покажет текущюю кодировку.
Если кодировка исходников и кодировка консоли совпадет и исполняемый файл собран после последнего сохранения исходного - то русские буквы должны выводиться нормально.
argumentvoid, вы когда вносите какие-то изменения в исходники, то они не появляются автоматически в исполняемой программе - для этого нужно пройти процесс компиляции.
argumentvoid, На счет F5 не знаю. Студия возможно по F5 не захочет его пересобрать. Rebuild solution или Rebuild <имя проекта>.
Поищите (или погуглите) в настройках студии параметр, отвечающий за то в какой кодировке сохранять исходники по умолчанию и будет вам счастье. На вскидку не подскажу.
И еще добавлю. В консоли винды нельзя быть уверенным, что у пользователя в консоли будет какая-то конкретная кодировка. Это актуально особенно в случае если вы пишите консольное приложение, которое планируете выпускать в мир.
Там достаточно было для локализации того, что выше описывал. Не знаю как так получается...
Это у вас поверхностное впечатление.
Видимо тогда у вас исходники сохранялись в кодировке совпадающей с кодировкой консоли. И вам это помогло. Но стоило в консоли перед запуском вашей программы дать команду chcp с указанием кодировки отличной от кодировки вашей программы, то вы бы снова словили эту проблему.
Обратите внимание, что родные утилиты винды нормально отображают русский текст, какая бы кодировка не была установлена в консоли (chcp 1251 или chcp 866) - как раз потому, что они перекодируют текст в правильную кодировку.
И не поможет - это надо делать в комплексе, все 4 пункта, что я написал в ответе. Это правильный подход и он работает.
Вы же сейчас можете просто сохранить исходники в cp866. А с правильным подходом разбираться позже.
Правильный, только скобки правильно расставь в выражении. В С++ как в математике с этим. В таком виде будет считаться последовательно слева на право.
Результаты итераций надо перемножить друг с другом и вывести итоговый результат, а не резултаты каждой итерации.