跳到主要内容

C++ wcout 流

wcout 与 cout 的区别

cout 使用 char(窄字符)作为字符类型。它可用于 ASCII 和 ANSI 字符。

对于国际化,我们需要 Unicode 字符串,这些字符串不适合用 char 表示。wcout 使用 wchar_t(宽字符)并可用于 Unicode 字符。

wcout 声明

extern wostream wcout;

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

wcout 对象在第一次构造 ios_base::Init 类型的对象期间或之前确保初始化。在 wcout 对象构造后,它与 wcin 绑定,这意味着任何对 wcin 的输入操作都会执行 wcout.flush()

wcout 中的 "wc" 代表 "wide character"(宽字符),而 "out" 意味着 "output"(输出),因此 wcout 意为 "宽字符输出"。

wcout 对象与插入操作符 (<<) 结合使用,以显示字符流。一般语法是:

wcout << varName;

wcout << "一些字符串";

插入操作符可以与变量、字符串和操作符(如 endl)多次组合使用:

wcout << var1 << "一些字符串" << var2 << endl;

wcout 对象还可以与其他成员函数(如 put()write() 等)一起使用。一些常用的成员函数有:

  • wcout.put(wchar_t &ch): 显示 ch 存储的宽字符。
  • wcout.write(wchar_t *str, int n): 从 str 读取并显示前 n 个字符。
  • wcout.setf(option): 设置给定选项。常用选项包括 left(左对齐)、right(右对齐)、scientific(科学记数法)、fixed(固定小数点)等。
  • wcout.unsetf(option): 取消设置给定选项。
  • wcout.precision(int n): 在显示浮点数时将小数精度设置为 n。与 wcout << setprecision(n) 相同。

示例 1:wcout 与插入操作符:

#include <iostream>

using namespace std;

int main()
{
int x, y;
wchar_t str[20];
wcout << L"输入两个整数:";
wcin >> x >> y;
wcout << L"和 = " << (x+y) << endl;

wcout << L"输入一个字符串:";
wcin >> str;
wcout << "您输入的是 " << str;
return 0;
}

当你运行程序时,可能的输出将是:

输入两个整数:4 9
= 13
输入一个字符串:今天
您输入的是 今天

示例 2:wcout 与成员函数:

#include <iostream>

using namespace std;

int main()
{
wchar_t str[] = L"通过示例学习 C++";
wchar_t ch = 'x';

wcout.write(str,9);
wcout << endl;
wcout.put(ch);

return 0;
}

当你运行程序时,输出将是:

通过示例学
x