cout
cout 用于在屏幕上显示消息,应该是 console output 的简写。它是 C++ 中 ostream 对象,该类被封装在 库中,该库定义的名称都放在命名空间 std 中,所以 cout 的全称是 std::cout 。
cout 被分类为流对象,这意味着可以使用数据流的。要在屏幕上显示消息,可以发送一串字符到 cout 。例如:cout << "hello world!" ;
如果要使用 cout ,需要包含库 。
cout 输出的格式控制
在使用 cout 时,可以将一些格式控制操作符放在语句中,来实现不同的输出效果。
以不同进制输出数字
cout 在输出数字时,默认是十进制的方式,还可以使用 hex 、oct 、dec 来控制输出的进制,这三个控制符都包含在 库中。例如:using namespace std;
auto i = 65534;
cout.setf(ios::uppercase); //输出为大写字母
cout << hex << i << endl; //十六进制输出(默认为小写字母)
cout << oct << i << endl; //八进制输出
cout << dec << i << endl; //十进制输出
cout << setbase(16) << i << endl; //以16进制输出
其中的 setiosflags(ios::uppercase) 表示以大写字母输出(默认是 ios::lowercase), setbase(n) 方法表示以 n 进制输出,其中的 n 取值为 8、10 或者 16,其余值无输出。这两个函数都包含在库 中。
使用 setiosflags() 时,可以使用 | 来同时设置多个位,例如:cout << setiosflags(ios::scientific | ios::showpos) << 12.01 << endl;
控制浮点数的输出
可以通过 setprecision(n) 、setiosflags(ios::fixed) 或 fixed 来对 cout 输出的精度进行控制。这几个控制符都包含在库 库的 std 命名空间中。#include
#include
#include
int main(void)
{
using namespace std;
system("chcp 65001");
system("cls");
double p = 1233.141592653;
cout << p << endl;
cout << setprecision(3) << p << endl; //保留两位小数
cout << setprecision(15) << p << endl;
cout << setiosflags(ios::fixed);
cout << p << endl;
cout << fixed << p << endl;
return 0;
}
运行结果如下:1233.14
1.23e+03
1233.141592653
1233.141592653000089
1233.141592653000089
显示小数点和正负号
此外,还可以使用 setiosflags(ios::showpoint) 来显示小数点,使用 setiosflags(ios::showpos) 来显示正负号。例如:double i2 = 100;
double d2 = -3.14;
cout << setprecision(4);
cout &