Проблема в том, что твоя программа выводит текст в кодировке utf-8, так как файл с кодом имеет такую кодировку, а в консоли на Винде по-умолчанию используются восьмибитные кодовые страницы (для русского языка - это cp866 и cp1251). vscode не виноват.
Решений несколько:
1. Поменять кодировку файла
2. Хранить текст для вывода в консоль в нужной кодировке
3. Конвертировать текст в нужную кодировку перед выводом в консоль
4. Поменять кодировку в консоли при помощи chcp на ту, которую использует программа.
5. Поменять кодировку консоли изнутри программы при помощи setlocale или SetConsoleOutputCP, SetConsoleCP
С моей точки зрения, самым правильным вариантом будет последний.
Просто добавь в самое начало main вот такую строку:
std::setlocale(LC_ALL, "ru_RU.UTF-8");
И ещё добавь include:
#include <locale>
Но обрати внимание, чтобы кодировка файлов оставалась utf-8. Если ты такую строку добавишь в случае, когда у тебя код имеет кодировку 1251 - при выводе снова будут кракозябры.