Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C++ 教程

C++ 主页 C++ 简介 C++ 入门 C++ 语法 C++ 输出 C++ 注释 C++ 变量 C++ 用户输入 C++ 数据类型 C++ 运算符 C++ 字符串 C++ 数学 C++ 布尔值 C++ If...Else C++ Switch C++ While 循环 C++ For 循环 C++ Break/Continue C++ 数组 C++ 结构体 C++ 枚举 C++ 引用 C++ 指针

C++ 函数

C++ 函数 C++ 函数参数 C++ 函数重载 C++ 范围 C++ 递归

C++ 类

C++ OOP C++ 类/对象 C++ 类方法 C++ 构造函数 C++ 访问修饰符 C++ 封装 C++ 继承 C++ 多态 C++ 文件 C++ 异常 C++ 日期

C++ 数据结构

C++ 数据结构 & STL C++ 向量 C++ 列表 C++ 栈 C++ 队列 C++ 双端队列 C++ 集合 C++ 映射 C++ 迭代器 C++ 算法

C++ 如何做

C++ 添加两个数字 C++ 随机数

C++ 参考

C++ 参考 C++ 关键字 C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime> C++ <vector> C++ <algorithm>

C++ 例子

C++ 例子 C++ 现实生活中的例子 C++ 编译器 C++ 练习 C++ 测验 C++ 证书


C++ cout 对象

❮ iostream 对象


例子

使用 cout 对象输出不同数据类型

string myStr = "Hello World!";
bool myBool = false;
int myInt = 50;
float myFloat = 19.99;

cout << myStr << "\n";
cout << myBool << "\n";
cout << myInt << "\n";
cout << myFloat << "\n";

自己尝试 »


定义和用法

cout 对象用于输出值/打印文本。

使用 cout 最常见的方法是使用 << 插入运算符。插入运算符根据其数据类型决定如何表示变量或字面值。

cout << "Hello World!";

自己尝试 »

插入运算符可以在同一行使用多次以输出多个值。

cout << "The answer is: " << x;

自己尝试 »

注意:cout 对象在 <iostream> 头文件中定义。


操纵器

操纵器允许您更改输出的格式。它们与 << 插入运算符一起使用,与字面值和变量相同,它们会影响它们后面的输出。

除了 setw() 之外,操纵器的效果会一直持续到另一个操纵器更改它为止。

下表显示了一些有用的操纵器列表。

操纵器 描述 例子
boolalpha 将布尔值显示为“true”和“false”,而不是“1”和“0”。 cout << boolalpha << false;
dec 将整数表示为十进制数字。 cout << dec << 12;
endl 输出一个换行符。此操纵器还会刷新输出缓冲区,这使其效率低于打印 \n cout << "Line 1" << endl << "Line 2";
ends 输出用于结束 C 样式字符串的空终止字符。主要用于写入文件时。 cout << "Hello World!" << ends;
fixed 以固定的小数位数表示浮点数。小数位数可以使用 setprecision() 操纵器来设置。 cout << fixed << 19.99;
hex 将整数表示为十六进制数字。 cout << hex << 12;
internal 如果指定了宽度(使用 setw() 操纵器),数字将左对齐其符号,而值右对齐,其他数据类型将右对齐输出。 cout << setw(10) << internal << -12345;
left 如果指定了宽度(使用 setw() 操纵器),则将输出左对齐。 cout << setw(10) << left << "Hello";
noboolalpha 用于重置 boolalpha 操纵器所做的更改。 cout << noboolalpha << false;
noshowbase 用于重置 showbase 操纵器所做的更改。 cout << hex << noshowbase << 12;
noshowpoint 用于重置 showpoint 操纵器所做的更改。 cout << noshowpoint << 12345.0;
noshowpos 用于重置 showpos 操纵器所做的更改。 cout << noshowpos << 12;
nouppercase 用于重置 uppercase 操纵器所做的更改。 cout << hex << nouppercase << 12;
oct 将整数表示为八进制数字。 cout << oct << 12;
right 如果指定了宽度(使用 setw() 操纵器),则将输出右对齐。 cout << setw(10) << right << "Hello";
fixed 以科学计数法表示浮点数。小数位数可以使用 setprecision() 操纵器来设置。 cout << fixed << 19.99;
setfill() 选择一个字符作为填充字符。
需要 <iomanip> 库。
cout << setfill('.') << setw(10) << 19.99;
setprecision() 选择浮点数的精度。如果使用了 fixedscientific 操纵器,则它指定小数位数,否则它指定有效数字的位数。
需要 <iomanip> 库。
cout << setprecision(4) << 12.3456;
setw() 指定下一个输出的最小字符宽度。如果输出不够宽,则添加填充以填补剩余的空间。
需要 <iomanip> 库。
cout << setw(10) << "Hello";
showbase 在将整数表示为十六进制或八进制时,在数字前添加 "0x" 或 "0" 前缀以显示其基数。 cout << hex << showbase << 12;
showpoint 始终显示浮点数的十进制点,即使不需要。 cout << showpoint << 12345.0;
showpos 始终在正数旁边显示 + 号。 cout << showpos << 12;
uppercase 用大写字母表示十六进制数字和科学记数法 "e"。 cout << hex << uppercase << 12;

例子

使用操纵器来更改输出的格式

// Booleans
cout << "Booleans\n";
cout << false << "\n";
cout << boolalpha << false << "\n";

// Hexadecimal and octal numbers
cout << "\nHexadecimal and octal numbers\n";
int myInt = 14;
cout << dec << myInt << "\n";
cout << hex << myInt << "\n";
cout << oct << myInt << "\n";
cout << showbase << uppercase;
cout << hex << myInt << "\n";
cout << oct << myInt << "\n";
cout << dec;

// Floating point numbers
cout << "\nFloating point numbers\n";
float myFloat = 19.99;
cout << myFloat << "\n";
cout << showpos << showpoint << 12345.0 << "\n";
cout << noshowpos << noshowpoint;
cout << fixed << myFloat << "\n";
cout << scientific << myFloat << "\n";

// Alignment
cout << "\nAlignment\n";
cout << setw(10) << left << "Left" << "\n";
cout << setw(10) << right << "Right" << "\n";
cout << setw(10) << internal << -12345 << " (Internal)\n";

自己尝试 »


方法

cout 对象还具有与 << 插入运算符相同的操作方法。

输出方法

cout.write(str, n) 方法输出来自 char 数组 str 的前 n 个字符,没有任何格式。

例子

char myStr[] = "Hello World!";
cout.write(myStr, 5);

自己尝试 »

cout.put(c) 方法输出指定的字符 c,没有任何格式。

例子

char grade = 'B';
cout.put(grade);

自己尝试 »

格式化方法

cout.precision(p) 方法指定用于表示浮点数的位数。默认情况下,它指定要显示的有效数字位数。如果启用了 ios::fixedios::scientific 标志,则它指定小数点后的位数。

例子

cout.precision(4);
cout << 12.3456;

自己尝试 »

cout.width(w) 方法指定下一个输出的最小字符宽度。如果输出的字符不够,则将添加填充字符以填补剩余空间。默认情况下,填充字符为空格,并且它们添加到左侧,以便内容右对齐。对齐方式可以通过使用下面“标志”部分中描述的 ios::adjustfield 标志之一来更改。

例子

cout.width(10);
cout << 5 << "\n";
cout.width(10);
cout << 25 << "\n";
cout.width(10);
cout << 125 << "\n";

自己尝试 »

cout.fill(c) 方法指定将使用哪个字符作为填充。

例子

cout.fill('.');
cout.width(10);
cout << 5 << "\n";
cout.width(10);
cout << 25 << "\n";
cout.width(10);
cout << 125 << "\n";

自己尝试 »

标志

setf()unsetf() 方法用于设置或取消设置更改输出格式的标志。有多种不同的标志。有些标志属于一个组,在这种情况下,setf() 方法应该有一个第二个参数来指定它属于哪个组,以便可以重置该组的其他标志。

标志 语法 描述
ios::boolalpha cout.setf(ios::boolalpha) 将布尔值显示为“true”和“false”,而不是“1”和“0”。
ios::showbase cout.setf(ios::showbase) 在将整数表示为十六进制或八进制时,在数字前添加 "0x" 或 "0" 前缀以显示其基数。
ios::showpoint cout.setf(ios::showpoint) 始终显示浮点数的十进制点,即使不需要。
ios::showpos cout.setf(ios::showpoint) 始终在正数旁边显示 + 号。
ios::uppercase cout.setf(ios::uppercase) 用大写字母表示十六进制数字和科学记数法 "e"。
ios::dec cout.setf(ios::dec, ios::basefield) 将整数表示为十进制数字。属于 ios::basefield 组。
ios::hex cout.setf(ios::hex, ios::basefield) 将整数表示为十六进制数字。属于 ios::basefield 组。
ios::oct cout.setf(ios::oct, ios::basefield) 将整数表示为八进制数字。属于 ios::basefield 组。
ios::fixed cout.setf(ios::fixed, ios::floatfield) 使用固定的小数位数来表示浮点数。小数位数可以通过 cout.precision() 方法来确定。属于 ios::floatfield 组。
ios::scientific cout.setf(ios::scientific, ios::floatfield) 以科学记数法表示浮点数。小数位数可以通过 cout.precision() 方法来确定。属于 ios::floatfield 组。
ios::internal cout.setf(ios::internal, ios::adjustfield) 如果指定了宽度,则对于数字,符号左对齐,而值右对齐,对于其他数据类型,输出右对齐。属于 ios::adjustfield 组。
ios::left cout.setf(ios::left, ios::adjustfield) 在指定宽度时,将输出左对齐。属于 ios::adjustfield 组。
ios::right cout.setf(ios::right, ios::adjustfield) 在指定宽度时,将输出右对齐。属于 ios::adjustfield 组。

例子

使用标志来更改输出的格式

// Booleans
cout << "Booleans\n";
cout << false << "\n";
cout.setf(ios::boolalpha);
cout << false << "\n";

// Hexadecimal and octal numbers
cout << "\nHexadecimal and octal numbers\n";
int myInt = 14;
cout << myInt << "\n";
cout.setf(ios::hex, ios::basefield);
cout << myInt << "\n";
cout.setf(ios::oct, ios::basefield);
cout << myInt << "\n";
cout.setf(ios::showbase);
cout.setf(ios::uppercase);
cout.setf(ios::hex, ios::basefield);
cout << myInt << "\n";
cout.setf(ios::oct, ios::basefield);
cout << myInt << "\n";
cout.setf(ios::dec, ios::basefield);

// Floating point numbers
cout << "\nFloating point numbers\n";
float myFloat = 19.99;
cout << myFloat << "\n";
cout.setf(ios::fixed, ios::floatfield);
cout << myFloat << "\n";
cout.setf(ios::scientific, ios::floatfield);
cout << myFloat << "\n";
cout.unsetf(ios::floatfield);
cout.setf(ios::showpos);
cout.setf(ios::showpoint);
cout << 12345.0 << "\n";

// Alignment
cout << "\nAlignment\n";
cout.setf(ios::left, ios::adjustfield);
cout << setw(10) << "Left" << "\n";
cout.setf(ios::right, ios::adjustfield);
cout << setw(10) << "Right" << "\n";
cout.setf(ios::internal, ios::adjustfield);
cout << setw(10) << 12345.0 << " (Internal)\n";

自己尝试 »


❮ iostream 对象

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.