Visual Studio 2019에서 UTF-8로 한글 스트링에 대해서 std::cin이 안되네요

levis93의 이미지

학교에서 C++ 과제를 하는데 cin으로 한글이 입력이 안되어서 테스트 소스를 작성하여 테스트 중입니다.

C++11 표준대로 std::cin에 UTF-8로 한글 입력을 받으려고 하는데 윈도우 콘솔 출력 시에는 아무것도 안나오는데 제 테스트 소스 코드에서 잘못된 부분이 있나요?

실행 결과는 이렇게 나와요.

--------
입력.
가나다라마바사

Press any key to continue . . .
[경로명] 이(가) 0 코드로 인해 종료되었습니다.
이 창을 닫으려면 아무 키나 누르세요.
----------

std::cin.imbue를 없애도 똑같이 입력받은 스트링이 보이지가 않습니다.

과제는 비주얼 스튜디오로 해야하는데 우분투의 G++ 8.0.4로 작성할 때에는 입력받은 한글 스트링도 제대로 나옵니다.

#pragma once
 
#include <iostream>
#include <string>
#include <locale>
#include "windows.h"
 
using namespace std;
 
int main(void)
{
 
	ios_base::sync_with_stdio(false);
 
	cin.imbue(locale("ko-KR.UTF-8"));
 
	SetConsoleOutputCP(CP_UTF8);
 
	string str = u8"입력."; // 콘솔에서 UTF-8 스트링인데도 정상적으로 출력.
 
	string input;
 
	cout << str << endl;
 
	cin >> input;
	cout << endl;
 
	cout << input << endl; // Visual Studio에서 컴파일 시에 문제가 되는 구문. 입력받은 스트링 input이 출력되지 않고 빈칸으로 보임. 디버깅 시에 조사식에서는 입력된 것으로 확인.
 
	system("pause");
 
	return 0;
 
}
저도요의 이미지

저도 그런 증상이 나타나네요 ;;;

Anti-Lock의 이미지

utf-8로 저장한 텍스트 파일을 실행파일에 리디렉션으로 넣어주면 되네요.
(메모장의 기본 인코딩이 UTF-8이네요... 언제부터 이랬죠? 놀라운 변화입니다.)
cmd창에 한글 입력해서는 안되구요...

test_program.exe < 1.txt