C++ 中的 wcerr 对象是类 ostream 的对象。它与标准 C 错误输出流 stderr 相关联。
cerr 和 wcerr 的区别
cerr
使用 char(narrow character) 作为字符类型。它可用于 ASCII 和 ANSI 字符。
对于国际化,我们需要不适合 char 的 Unicode 字符串。 wcerr
使用 wchar_t
(宽字符)并可用于 Unicode 字符。
wcout 和 wcerr 的区别
初学者 C++ 程序员使用 cout
和 wcout
来显示错误,使用标准输出来调试他们的程序,但使用 cerr
和 wcerr
来显示错误始终是一个好习惯。
这是因为您可以稍后更改错误流以将错误写入文件,而不是在屏幕上显示错误流。
wcerr 声明
extern wostream wcerr;
它在<iostream> 头文件中定义。
wcerr
对象确保在第一次构造ios_base::Init
类型的对象期间或之前被初始化。构造wcerr
对象后,表达式(wcerr.flags & unitbuf)
不为零,这意味着发送到这些流对象的任何输出都会立即刷新到操作系统。另外 wcerr.tie() == &wcout
即 wcerr.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++ wcstold()用法及代码示例
- C++ wctrans()用法及代码示例
- C++ wcsftime()用法及代码示例
- C++ wcstod()用法及代码示例
- C++ wcscspn()用法及代码示例
- C++ wcsncmp()用法及代码示例
- C++ wcin用法及代码示例
- C++ wcstok()用法及代码示例
- C++ wcsstr()用法及代码示例
- C++ wcsrchr()用法及代码示例
- C++ wctob()用法及代码示例
- C++ wcsncpy()用法及代码示例
- C++ wcslen()用法及代码示例
- C++ wcsspn()用法及代码示例
- C++ wclog用法及代码示例
- C++ wcschr()用法及代码示例
- C++ wctomb()用法及代码示例
- C++ wcstof()用法及代码示例
- C++ wcstol()用法及代码示例
- C++ wcspbrk()用法及代码示例
注:本文由纯净天空筛选整理自 C++ wcerr。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。