wcout 与 cout 的区别
cout
使用 char
(窄字符)作为字符类型。它可以用于 ASCII 和 ANSI 字符。
为了国际化,我们需要 Unicode 字符串,而 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 << "Some String";
提取运算符可以与 变量、字符串 和操纵符(如 endl)组合使用,可以不止一次。
wcout << var1 << "Some String" << 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"Enter 2 integers:";
wcin >> x >> y;
wcout << L"Sum = " << (x+y) << endl;
wcout << L"Enter a string:";
wcin >> str;
wcout << "You entered " << str;
return 0;
}
运行程序时,可能的输出是
Enter 2 integers:4 9 Sum = 13 Enter a string:today You entered today
示例 2:带成员函数的 wcout
#include <iostream>
using namespace std;
int main()
{
wchar_t str[] = L"Learn C++ by examples";
wchar_t ch = 'x';
wcout.write(str,9);
wcout << endl;
wcout.put(ch);
return 0;
}
运行程序后,输出将是
Learn C++ x
另请阅读