格式化输入输出
C++ 标准库提供了大量的操纵符(manipulator)来改变输入或输出的格式,例如整数的进制等。这些操作符一部分定义在头文件 <iostream> 中,一部分也定义在 <iomanip>(含义:IO manipulator)中。
整数
几个常用的整数格式化命令:
定义在 <iomanip> 内的操纵符:
setw(n)指定输出宽度(set width),不足宽度的整数会被补足,超过宽度时该格式化命令会被忽略setfill(ch)指定补足宽度使用的符号(不指定时默认为空格),常用于补足前导 0setbase(n)指定输出进制(大于十进制时,字母默认为小写) 定义在<iostream>内的操纵符:oct,dec,hex:指定输入输出为八进制、十进制、十六进制
使用如下的命令,可以在输出不足三位的整数 x 时补足前导 0:
std::cout << std::setw(3) << std::setfill('0') << x << std::endl;
std::cout << std::setw(3) << std::setfill('0') << 12; // 输出 012
浮点数
浮点数的常用格式化命令:
定义在 <iomanip> 中:
setprecision(n)指定浮点数的有效数字位数,不指定时默认是 6fixed固定小数点后的位数,将setprecision的功能转变为指定小数点后数字位数
例如:
std::cout << setprecision(3) << 12.3456; // 12.3 三位有效数字
std::cout << fixed << setprecision << 12.3456; // 12.346 三位小数
有效数字位数小于整数部分位数时,同数学上的规定一样,会以科学计数法的形式输出:
std::cout << std::setprecision(2) << 1212.3456 << std::endl; // 输出 1.2e+03
BEYOND THE ARTICLE
读完了,有什么想法?
阅读已保存的问答示例,并循着引用回到原文。
— 本文完 — 返回文章列表