本文共 834 字,大约阅读时间需要 2 分钟。
本节书摘来自异步社区出版社《C和C++代码精粹》一书中的第1章第1.7节,作者: 【美】Chuck Allison,更多章节内容可以访问云栖社区“异步社区”公众号查看。
C和C++代码精粹
当然每个C程序员都曾经使用过printf的错误格式描述符号。对printf来说没有办法检查所传递的数据项是否与字符串格式匹配。程序清单1.4 一个说明引用调用的交换函数
// swap.cpp#includevoid swap(int &, int &); main(){ int i = 1, j = 2; swap(i,j); printf("i == %d, j == %d\n", i, j);} void swap(int &x, int &y){ int temp = x; x = y; y = temp;} //输出:i == 2, j == 1
做如下事情的频率如何?仅仅是在运行时发现问题?
double d;…printf("%d\n",d);/*嘿!本应该用%f*/
换句话说,C++流库使用一个对象的类型来决定正确的格式:
double d;…cout<<
表达式cout<
double x = 1.5, y = 2.5; //从现在起保留小数点后两位cout.precision(2); //保持小数点后的0cout.setf(ios::showpoint);cout<<<'\n'; //打印1.50cout< <<'\n'; //打印2.50
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。