Visual C++ Бесконечность в консоли с помощью WinAPI

Всем нам хорошо известен символ бесконечности . Это интересный символ, о котором можно много философствовать и который применяется во многих науках. Тот кто учил математику, помнит, что если делить на ноль, то получится бесконечно большая или бесконечно малая величина. (Матан, матан). Если начинающий программист пишет какой-нибудь калькулятор, то обычно при попытке поделить на ноль в лучшем случае выводит сообщение о том, что на ноль делить нельзя. Иногда все-таки нужно отобразить значок бесконечности в консоли Visual Studio. Для такого могут быть разные причины и неважно какие они у кого. Если ты смог вывести бесконечность, то можешь считать себя чуть более крутым по сравнению с некоторыми со своими коллегами-конкурентами, которые идут с тобой нога в ногу. Все-таки именно символ бесконечности сходу вывести проблематично.

Для того, чтобы вывести символ бесконечности в консоли Visual C++ я использую WinApi. Для того, чтобы код сработал, в настройках проекта нужно поменять Юникод на многобайтовую кодировку (иначе могут возникать ошибки)

    Если включен Юникод, то

  • Ошибка 1 error C2664: FindWindowW: невозможно преобразовать параметр 1 из «const char [19]» в «LPCWSTR»….>
  • Поменять на многобайтовую кодировку. (В свойствах проекта)

Я сделал только для первой строки. Если ваша программа выводит текст в каком-то одном определенном месте, то достаточно поменять значение y для функции вывода символа бесконечности. В другом случае будет необходимо выполнять какие-то расчеты, приблизительно как у меня для значения x. В моем примере для значения y установлена цифра 1, а для x формула. Для того, чтобы выводить на необходимой строке, а не на первой (если неизвестно заранее какая строка будет), нужно будет подобрать какой-то коэффициент (мне лень), как у меня сделано для значения по x (к=8), а потом при каждом переносе строки учитывать, что произошел перенос и по y выводить по формуле с коэффициентом. В любом случае то, что я предлагаю мне кажется гемморным и лучше если заранее знать в какой строке будет вывод текста с символом бесконечности.

  • У меня для примера использовалась консольное окно. Шрифт Lusidia Console. Размер 12

На всякий случай еще один код

В коде заполняется текст для вывода на экран, выводится вместе с символом переноса строки, наращивается y и далее выводится символ бесконечности.

Если нужно отразить текст+бесконечность+текст в одной строке, то сначала выводим все кучоски строки и в конце все символы бесконечности. (Сначала строка -потом графика) Строка 43. Не забываем оставлять место, чтобы не затереть текстом значок бесконечности (в 43 — это пробелы, в остальных перенос строки)
___________
Если Вы используете mingw, то надо компилровать с флагом
-mwindows

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/robert-s-martin/chistyy-kod-sozdanie-analiz-i-refaktoring-2/?lfrom=15589587

Последние комментарии

Яндекс.Метрика