怎么输出utf-8格式的字符串

如何输出utf-8格式的字符串
本人新手
最近刚搞编码问题。

比如我把一个含有7个汉字的文本文件以utf-8格式保存
如果我在dos下 设置utf-8代码页和正确字体后 用type 指令 是能够正确输出的

但是如果我在cpp中用一个string读取其中一行代码。去除文本bom后,在用cout输出到dos中 却是很多个框
utf-8中汉字占3字节,但是却输出了21个框,说明程序还是没办法以utf-8格式 输出这段字符串 还以为输入的不是7个汉字,是21个字符。

所以小弟想问,如果我的string保存了一段utf-8格式的字符串,如何正确输出到屏幕上,正确输出7个汉字,不是乱码呢?


------解决方案--------------------
输出到哪里?

而且一般Windows上,是要输出UNICODE16的。UTF8不行。
------解决方案--------------------
MultiByteToWideChar
WideCharToMultiByte
编码的转换
------解决方案--------------------
在运行你的程序输出UTF-8之前,先用下面的命令切换代码页。
chcp 65001