C++格式化输出

C++格式化输出,第1张

C++格式化输出
    流输出 *** 作符
    完整参考:http://c.biancheng.net/view/275.html
LOG(LOG_INFO) << "Dimension: " << left << setw(10) << dim.GetDimension()->GetDimValue()
				  << "Angle: " << left << setw(8) << dim.GetAngle()
				  << "Distance: " << dim.GetDistance();
常用 *** 作符:  
left——左对齐,默认右对齐
setw(w)——占位宽度
setfill(c)——占位填充字符,默认为空格
fixed——以普通小数形式输出浮点数
scientific——以科学计数法形式输出浮点数
setbase(b)——设置输出整数时的进制,b=8、10 或 16
dec——以十进制形式输出整数,默认为十进制
hex——以十六进制形式输出整数
oct——以八进制形式输出整数
setprecision(n)——设置输出浮点数的精度为 n。在使用非 fixed 且非 scientific 方式输出的情况下,n 即为有效数字最多的位数,如果有效数字位数超过 n,则小数部分四舍五人,或自动变为科学计 数法输出并保留一共 n 位有效数字。在使用 fixed 方式和 scientific 方式输出的情况下,n 是小数点后面应保留的位数。
    调用cout成员函数
	stringstream msg;
	msg.setf(std::ios::left);
	msg << "Dimension: ";
	msg.width(10);
	msg << dim.GetDimension()->GetDimValue() << "tAngle: ";
	msg.width(5);
	msg << dim.GetAngle() << "tdistance: " << dim.GetDistance();
	LOG(LOG_INFO) << msg.str();
成员函数作用相同的流 *** 纵算子说明precision(n)setprecision(n)设置输出浮点数的精度为 n。width(w)setw(w)指定输出宽度为 w 个字符。fill(c)setfill (c)在指定输出宽度的情况下,输出的宽度不足时用字符 c 填充(默认情况是用空格填充)。setf(flag)setiosflags(flag)将某个输出格式标志置为 1。全局生效unsetf(flag)resetiosflags(flag)将某个输出格式标志置为 0。
    printf输出
    库函数sprintf()参考:https://www.runoob.com/cprogramming/c-function-sprintf.html
    下面代码中,buffer必须指定大小,char *buffer会运行失败
	char buffer[100]; 
	sprintf(buffer, "Dimension:%-8.3f Angel:%-8.2f Distance:%-8.3f",
			dim.GetDimension()->GetDimValue(), dim.GetAngle(), dim.GetDistance());
	LOG(LOG_INFO) << buffer;

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5714130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存