target_include_directories(test PRIVATE ${YOUR_DIRECTORY})
#include
.add_executable(main ${PROJECT_SRC})
file(GLOB PROJECT_SRC
"*.h"
"*.cpp"
)
*.h
в список исходников -- идея не очень. по-моему она возникает как раз не в cmd, а в консоли VS Code.
setlocale(LC_ALL, "")
мог бы помочь именно здесь.Как ни странно, именно en_US.utf8 с русским текстом на моей русской винде работает нормально...
utf8
имеет значение, и, поскольку она обозначает кодировку, способную представить весь unicode, она будет работать для любых символов. Проблемы будут у людей использующих кодовые страницы типа сp1251
. Насчёт второго - нет, на выходе после расшифровки нужны именно любые символы любых языков.
en_US.utf8
? setlocale(LC_ALL, "")
? Второй здесь: зачем там wchar_t, учитывая, что на выходе будут только символы из набора с64? значит все таки проблема в валгринде?
valgrind --tool=memcheck --leak-check=yes ./$(NAME)
valgrind --tool=memcheck --leak-check=yes ./$(NAME) || echo "valgrind error code: $$?"
куда тут вставить округление
Поэтому и прошу помощи
> для полноты картины стоит показывать полный лог выполнения команды make
>> не вижу смысла в этом
Полный лог высылать нет смысла, там нет никакой информации
да нет, дело не в шифровании:
int main(int argc, wchar_t* argv[]) ... printf("%s ", argv[i]);
%s
-- это не тот формат, который можно использовать для вывода строки wchar_t*
. Этот код частично работает потому что ты не работаешь с отдельными символами argv
, если бы ты стал это делать, ты бы сразу увидел, что что-то сильно не так. Попробуй в этой программе посимвольно напечатать аргументы. читал в одном источнике, что на Windows новых версий наоборот аргументы в cmd.exe передаются в Unicode
я реализовал чтение аргументов через функции WinAPI, заключив их в #ifdef. Насколько это индусский код, и что с ним будет на Linux?
в чём отличие преобразования (wchar_t*) в (char*) явным образом и вызова wcstombs?
после расшифровки строки с русскими буквами и её вывода на консоль получался мусор. Это так и должно быть, или где-то в моём коде есть баг, который к этому приводит?
Вопрос в том, что может я где-то усложнил себе жизнь?
Откуда в этой записи 8 нулей справа от точки? led_state -- 8-битное число, его значение в момент когда эта строчка выполняется в первый раз -- 3.