修理中だった PC (Windows 10 Home 64bit Version 1809) が返ってきたので、今更ですが実験してみました。
以下のコンパイラーで #1 のプログラムをコンパイル実行しました。
GCC
gcc (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0
BCC32
Embarcadero C++ 7.30 for Win32 Copyright (c) 2012-2017 Embarcadero Technologies, Inc.
Embarcadero Technologies Inc. bcc32c version 3.3.1 (36350.30c6854.779bede) (based on LLVM 3.3.1)
VC++ (Visual Studio 2017)
Microsoft(R) C/C++ Optimizing Compiler Version 19.16.27030.1 for x64
VC++ (Visual Studio 2019)
Microsoft(R) C/C++ Optimizing Compiler Version 19.20.27508.1 for x64
いずれのコンパイラーでも文字化けせずに表示できました。
Windows10 の現バージョンでコンソールに不具合があるようなのですがつい最近 1809 にアップデートしたためか、レガシーコンソールにはしていなくとも、当方の環境では正常に表示できました。
参考
Windows10 OctoberUpdate(1809) でのコンソールのバグ
もしコンソールの不具合が原因なら、レガシーコンソールを使用することで解消するかもしれません。
なお、C言語標準ライブラリの影響を排除するために以下のようなプログラムでも検証を行いましたが、文字化けせずに正常に表示できました。
コード:
#include <windows.h>
int main(void)
{
char buff[] = { '\x82', '\xa0', '\x82', '\xa2', '\x82', '\xa4', '\r', '\n' };
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD nCharsToWrite = 1;
DWORD nCharsWritten;
for (auto c : buff) {
WriteConsoleA(hConsole, &c, nCharsToWrite, &nCharsWritten, NULL);
Sleep(1000);
}
}