📅  最后修改于: 2020-09-25 14:39:20             🧑  作者: Mango
阻塞用户char(narrow 字符)作为字符类型。它可以用于ASCII和ANSI 字符。
为了进行国际化,我们需要不适合char的Unicode 字符串 。 wclog使用wchar_t(wide 字符),可用于Unicode 字符。
wclog
和wcerr
,两者都具有相关联stderr
,但它不同于wcerr
在这个意义上,在流wclog
被缓冲,而不是与自动捆绑wcout
。
缓冲输出比无缓冲输出更有效。对于缓冲输出,所有输出都保存到变量中并一次写入磁盘。对于无缓冲的输出,我们必须继续写入磁盘。
对于严重错误,不建议使用缓冲输出。在系统崩溃的情况下,可能会出现以下情况:输出仍在缓冲区中,并且未写入磁盘,并且错误消息无法检索。在系统崩溃的情况下,我们无法承受丢失错误数据的风险,因此即使速度较慢,我们也会继续将严重错误写入磁盘。
wclog
通常用于记录目的。对于非关键事件日志记录,效率更为重要,因此wclog优于wcerr
。
extern ostream wclog;
它在
确保在第一次构造ios_base::Init
类型的对象期间或之前初始化wclog
对象。 wclog
不与任何其他流绑定。
wclog
的“ wc”是指“宽字符”,因此wclog
表示“宽字符日志”。的
wclog
对象与插入运算符 (<<)一起使用,以显示字符流。通用语法为:
wclog << varName;
要么
wclog << "Some String";
提取运算符可以与变量, 字符串和操纵符 (例如endl
)结合使用多次:
wclog << var1 << "Some String" << var2 << endl;
#include
#include
using namespace std;
int main()
{
char fileName[] = "data.txt";
wifstream infile(fileName);
if(infile)
wcout << infile.rdbuf();
else
wclog << L"Error while opening the file " << fileName <
当您运行该程序时,可能会输出[如果打开文件时出错]:
Error while opening the file data.txt