当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ wcerr用法及代码示例


C++ 中的 wcerr 对象是类 ostream 的对象。它与标准 C 错误输出流 stderr 相关联。

cerr 和 wcerr 的区别

cerr 使用 char(narrow character) 作为字符类型。它可用于 ASCII 和 ANSI 字符。

对于国际化,我们需要不适合 char 的 Unicode 字符串。 wcerr 使用 wchar_t(宽字符)并可用于 Unicode 字符。

wcout 和 wcerr 的区别

初学者 C++ 程序员使用 coutwcout 来显示错误,使用标准输出来调试他们的程序,但使用 cerrwcerr 来显示错误始终是一个好习惯。

这是因为您可以稍后更改错误流以将错误写入文件,而不是在屏幕上显示错误流。

wcerr 声明

extern wostream wcerr;

它在<iostream> 头文件中定义。

wcerr 对象确保在第一次构造ios_base::Init 类型的对象期间或之前被初始化。构造wcerr 对象后,表达式(wcerr.flags & unitbuf) 不为零,这意味着发送到这些流对象的任何输出都会立即刷新到操作系统。另外 wcerr.tie() == &wcoutwcerr.tie() 返回 &wcout 这意味着 wcout.flush()wcerr 上的任何输出操作之前执行。

wcerr 中的"wc" 指的是"wide character",'err' 表示"error",因此 wcerr 表示“宽字符错误”。 wcerr 对象与插入运算符 (

wcerr << varName;

或者

wcerr << "Some String";

提取运算符可以与变量、字符串和操纵器的组合多次使用(如 endl ):

wcerr << var1 << "Some String" << var2 << endl;

示例:wcerr 是如何工作的?

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
	char fileName[] = "data.txt";
	wifstream infile(fileName);
	
	if(infile)
		wcout << infile.rdbuf(); 
	else
		wcerr << "Error while opening the file " << fileName << endl; 
        return;
}

运行程序时,输出将是:[如果文件无法打开]

Error while opening the file data.txt

相关用法


注:本文由纯净天空筛选整理自 C++ wcerr。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。