• Как в Си вывести в консоль без записи в буфер?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Если я использую printf("asd"), то весь текст в кавычках будет выведен на экран и записан в лог файл. Вот такая команда: './a.out > file.log'.

    Здесь несколько несуразностей: 1) printf в ./a.out > file.log не выведет ничего на экран, всё будет перенаправлено в файл. но 2) сам printf об этом ничего не знает. Он выводит данные в поток стандартного вывода, куда они перенаправляются потом -- не его дело. 3) оператор > перенаправляющий вывод -- это инструкция командной оболочке как запускать программу, к самой программе отношения не имеет.

    Есть ли какая другая команда вывода, которая будет текст выводить только в терминал, без записи в файл?

    Есть! ./a.out, без каких-либо изменений в коде.
    Ответ написан
    4 комментария
  • WxWidgets Debug Alert - как убрать?

    Adamos
    @Adamos
    Вообще-то использование wxWidgets предполагает использование класса wxApp, а не просто вызов функций библиотеки в main(). Вы пытаетесь выдернуть из библиотеки одну функцию, она не находит привычного окружения и валится. Все логично.
    Ответ написан
    2 комментария
  • Как отправить нажатия клавиш в неактивное приложение?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Неактивному окну - только через отправку стандартного оконного сообщения. Если не работает - то только реверсингом приложения и взломом.
    Ответ написан
  • Почему msbuid создает dll и exe?

    vabka
    @vabka Куратор тега .NET
    Токсичный шарпист
    Есть опция PublishSingleFile - как раз склеит DLL и exe.

    self-contained можно отключить
    dotnet publish -c Release -r win-x64 -o ./pub -p:PublishSingleFile=true --self-contained false
    Ответ написан
    8 комментариев
  • Как найти числа в матрице начинающиеся на 7?

    @GaalSpear
    1. Способ костыльный и медленный: преобразовать число в строку и проверить первый символ.
    2. Посмотреть порядок числа, и проверить принадлежность диапазону (как написали выше, если 100..900, то нужный диапазон - 700..799, а, например, для 9..99 нужный диапазон - 70..79).
    3. найти первую цифру числа и посмотреть семёрка ли она. Это можно сделать например применением деления в цикле. (Ну как бы вы писали преобразование числа в строку, только вручную?)

    узнать первую цифру числа можно например так:
    int iValue = 8776892;
    
    std::cout << "Source number : " << iValue << std::endl;
    for(int iv2 = iValue; iv2 != 0; iValue = iv2, iv2 = iValue / 10);
    std::cout << "First number digit : " << iValue << std::endl;
    
    if (iValue == 7)
    	std::cout << "SEVEN !!!!" << std::endl;
    else
    	std::cout << "NOT SEVEN !!!" << std::endl;
    Ответ написан
    Комментировать
  • Требования к самописной CRM?

    Jeer
    @Jeer
    уверенный пользователь
    Аж жуть берет от таких заданий ) Покупка готового инструмента обычно дешевле, чем разработка с нуля. Особенно если разработка осуществляется одним человеком. Особенно если опыта мало. Особенно, если на поддержке будет тот же человек, что и на разработке ) безумие :) проект полетит в помойку, но у вас будет строчка в резюме по созданию проекта, можете обкатывать любые технологии за счет глупого работодателя.

    По делу без брюзжания:
    Писать под винду моветон - лицензии дорогие
    Вин формс зачем? - делайте веб апи с фронтом на вью/реакте/ангуляре. Нужна кроссплатформенность, чтобы хоть с телефона можно было зайти и нажать нужную кнопку в системе.
    Апи нужно, потому что будет много интеграций с другими системами, загрузка/выгрузка в 1с, не дай бог будете телефонию подключать
    Внутренняя сеть решается с помощью впн сервера.
    Помимо функциональных требований существуют еще технические, должен быть мониторинг, вы должны всегда знать сколько ресурсов потребляет ваш сервер, сколько данных занимает на дисках, логи и трейсы - гуглится по слову Observability, обычно не закладывается в смету, но к этим вопросам приходят рано или поздно
    Что еще, ну, по функционалу тут проще, открываете презентации в популярных CRMках, смотрите, что они могут, выписываете списком и идете к заказчику, чтобы он указал галочками, что будете делать, что не будете
    потом прикидываете по трудозатратам и озвучиваете сроки из которых можно понять примерную стоимость проекта. Часто одно маленькое предложение, типа того же "выгрузить данные в 1с" грозит несколькими десяткми часов работы, потому что другой отдел, с ними нужно договориться и сделать интеграцию. Или "должен быть отчет такой-то", а там как начнешь разбираться, еще 5 раз посовещаться сначала надо ))
    Ответ написан
    Комментировать
  • Как сформировать массив в потоке, чтобы потом отобразить его на графике?

    Zifix
    @Zifix Куратор тега Qt
    Barbatum
    Вы хоть одну статью, хотя бы на Хабре прочитали, как правильно многопоточку организовывать? Ваш код — это нечто заведомо неработоспособное, написанное наугад. Книжку хоть одну по Qt прочитали?

    Например, вот это — лютая дичь, бесконечный цикл в UI потоке, из которого нет никакого выхода, очевидно, что оно зависает:
    void MainWindow::on_pushButton_15_clicked() 
    {
        ui->pushButton_15->setText("STOP");
        while (ui->pushButton_15->text()=="STOP"){
           spec_thrd->run();
        }
    }
    Возьмите заведомо рабочий пример, разберитесь, зачем нужна каждая конструкция, каждая строчка, и потом уже пошагово допиливайте его под себя.
    Ответ написан
    Комментировать
  • Astra Linux лицензия?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ничего не делать. Потому что Смоленск - Special Edition cо всяческими сертификатами. Устанавливаешь несертифицированное обновление - и все, сертификация накрылась. Вместе с тобой.

    Трогать Special Edition крайне не рекомендуется - обновление только со штатных серверов.

    И забудь уже про бубунту и прочие дистрибы, отсутствующие в списке минсвязи - вся дальнейшая работа будет строиться исключительно на них.

    Да, и вручную не стоит ничего собирать - система должна быть ровно в том состоянии, в каком ее поставили (не считая обновлений, которые сделаны со штатных серверов)
    Ответ написан
    5 комментариев
  • Какой компилятор выбрать для C++?

    @res2001
    Developer, ex-admin
    На винде микросовтовский компилятор, по ощущениям, лучше. Специально замеры не проводил, все субъективно. Причем не обязательно использовать студию, можете сидеть на том же CLion (или QtCreator) и собирать с помощью cl. Можно поставить вообще только MS Build Tools - туда как раз и входит компилятор без IDE. На счет лицензирования - вопрос интересный. Предоставляют компилятор бесплатно, но могут быть лицензионные ограничения на разработку коммерческого софта.

    На линукс gcc или clang.

    Разница между компиляторами, конечно, есть. Разные расширения, разная степень поддержки стандартов, особенно свежих. Могут отличаться возможности оптимизации и т.п. Например микрософт никогда не поддерживала стандарты Си и там много чего нет еще с С99. Стандарты С++ они официально поддерживают.
    Если вы пишите приложение используя только стандартизованные языковые возможности (без расширений компилятора), то, по идее, не должно быть проблем пересесть на другой компилятор в рамках одной ОС.
    Кстати в gcc по умолчанию расширения включены.

    Есть и другие компиляторы. Например у интел хороший оптимизирующий компилятор, но он стоит денег.
    Ответ написан
  • Почему считывается с файла только 1 слово, а не весь текст?

    @res2001
    Developer, ex-admin
    Не раскрыта тема о классе House. Не видя его трудно что-то сказать.

    Но могу предположить, что в House, например, поле address является std::stringом.
    А std::string хранит свою строку в динамической памяти и sizeof(std::string) в общем случае совсем не равен размеру хранящейся в нем строки. Записывая в файл sizeof(std::string) байт вы записываете грубо говоря только адрес памяти где лежит строка и размер строки, но не саму строку.
    Вам нужно делать нормальную сериализацию/десериализацию полей объекта House.
    Ответ написан
    4 комментария
  • Что возвращает return в С++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Зависит от кода функции и опций компилятора.

    Советую всем программистам на C++ хотябы почитать про ассемблер.
    Стек, регистры, вот это вот все. Тогда станет понятно, как работает процессор.

    Тогда станет понятно что "сам объект tmp" никак не вернуть. Это локальная переменная, лежащая на стеке в части, которая будет отброшена при выходе из функции. Отсюда вытекает, что вообще говоря, там должна быть копия.

    Но есть такая оптимизация, как RVO. В стандарте даже прописано, когда конкретно она гарантирована. Тогда копии не происходит. При этом компилятор вообще не создает локальной переменной. А вместо этого сразу же работает с тем местом, куда надо будет возвращать значение.

    Если код и включенные оптимизации позволяют это сделать - то копии не будет. Но в общем случае - будет копия.
    Ответ написан
    Комментировать
  • Можно ли в приложении создать кнопку выбора последнего выбранного файла?

    Adamos
    @Adamos
    Открыл файл - записал его путь в настройки приложения.
    Открыл приложение - прочитал настройки - получил путь к последнему открытому файлу и делай с ним что хочешь.
    Причем для этой логики некритичен ни язык, ни ОС, и WinAPI не нужно совершенно.
    Ответ написан
    Комментировать
  • Почему на одном из компьютеров в ZIP не верно отображаются имена файлов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    проверьте установки системы панель управления регион администрирование
    язык для не unicode программ
    Ответ написан
    1 комментарий
  • Как лучше организовать дубли?

    @res2001
    Developer, ex-admin
    Это называется дедубликацией. В Windows Server давно уже есть соответствующие родные службы, так что можете просто заменить Windows 10 на Windows Server :-)
    На сколько я знаю, есть сборки пакетов для дедубликации, которые работают на Windows 10. Собраны они умельцами из соответствующих пакетов Windows Server. Сам не пользовался, так что ничего по функционалу не скажу. Гуглите.

    PS: не пользуйтесь ccleaner
    Ответ написан
    Комментировать
  • Странное и неадекватное поведение смартфона?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Батарейка кирдык, менять надо.
    Ответ написан
    1 комментарий
  • Как распарсить такую строку?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Перебираем символы: находим запятую - делим; находим кавычки - игнорируем запятые до следующей кавычки.
    Ответ написан
    Комментировать
  • Как распарсить такую строку?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Это CSV и уже есть готовые библиотеки, которые нормально обрабатывают кавычки.
    Буквально так и называется библиотека: Csv и ещё есть CsvHelper
    Вот пример, как использовать CsvHelper:
    #r "nuget:CsvHelper"
    
    using CsvHelper;
    var text = "123,текст,текст с пробелами,\"текст, еще и с запятыми\",\"еще текст, еще с запятыми\"";
    
    var parserOptions = new CsvHelper.CsvParserOptions { Delimiter = ',' };
    var readerOptions = new CsvHelper.CsvReaderOptions { HasHeaderRecord = false };
    
    using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(text)))
    using (var stringReader = new StreamReader(memoryStream))
    using (var csvParser = new CsvParser(stringReader, parserOptions))
    using (var csvReader = new CsvReader(csvParser, readerOptions))
    {
        while (csvReader.Read())
        {
            Console.WriteLine(csvReader.GetField(0));
            Console.WriteLine(csvReader.GetField(1));
            Console.WriteLine(csvReader.GetField(2));
            Console.WriteLine(csvReader.GetField(3));
            Console.WriteLine(csvReader.GetField(4));
        }
    }
    Ответ написан
    Комментировать
  • Равенство всех элементов в упорядоченном ассоциативном контейнере/динамическом массиве?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Самое быстрое решение - это написать свой контейнер, который будет складывать данные в обычный stl-ий контейнер, но при их изменении будет сравнивать их с заданным значением и поддерживать счетчик не равных заданному числу элементов (не нулевых в вашем примере).

    Тут все опрерации будут выполнятся за константое время. Быстрее никак. И расход памяти минимальный - один счетчик. Но придется много операторов методов реализовывать, если вы хотите эту вашу коллекцию использовать как обычные stl коллекции (итератор свой, всякие begin/end/size/operator[] etc).
    Ответ написан
    5 комментариев
  • C# и OutOfmemoryExtension - как перейти на полноценные 64х?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Ну без кода сказать в чём конкретно проблема нельзя, но вот пара советов:

    1. Убедись что Target platform у тебя x64 (Но вообще, если у тебя dotnet core, то он и так и так не будет упираться в 4гб)
    2. Убедись, что где-то в недрах у тебя не выделяется массив более чем на int.MaxValue элементов (внутри словарей массив, если мне память не изменяет)
    3. Убедись, что это ошибка именно из рантайма приходит, а не выкинуто где-то явно
    4. Попробуй как-нибудь разделить свои данные, чтобы для их хранения не требовался непрерывный кусок памяти.
    5. Если ты используешь net framework, а не net core, то тебе нужно в конфиге явно указать, что ты хочешь создавать объекты более 2гб размером.
    https://docs.microsoft.com/en-us/dotnet/framework/...

    VS2022 и так x64, да и даже если бы была х32, как в 2019 - это бы не повлияло на само приложение.
    Ну и возьми dotMemory, чтобы продиагностировать проблемы в работе с памятью.
    Ответ написан
    7 комментариев
  • Как перевести радианы в градусы?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Очевидно, что переводить в радианы нужно не результат операции, а параметр.
    Тоесть тут надо _dir, который в градусах, перевести в радианы
    Ответ написан
    2 комментария