资料来源:南科大 于仕琪 C/C++ Program Design
LINK:CPP/week02 at main · ShiqiYu/CPP · GitHub
一、本节内容
Formatting with cout
浮点类型总共显示六位数字,但不显示尾随零。浮点数以定点表示法或 E 表示法显示,具体取决于数字的值。特别地,如果指数是6或更大或者-5或更小,则使用E表示法。
- Using member functions of ios class
cout.setf(ios_base::fixed, ios_base::floatfield);
/*
设置了 cout 的输出格式。
具体来说:
ios_base::fixed 确保浮点数以固定小数位数的形式打印出来。
ios_base::floatfield 指定该格式适用于浮点数。
*/
cout.width(12);
/*
设置输出的字段宽度为 12。字段宽度是输出的最小字符数,如果输出的字符数不足,将使用填充字符(默认为空格)填充。
*/
cout.precision(2);
/*
设置输出的浮点数精度为 2。换句话说,小数部分将保留两位。
*/
setf() 和unsetf()
- Using iomanip manipulators
456.7:先设置宽度12,之后用#填充
二、部分习题笔记
习题5
What is the output of the code as follows? What is the meaning of auto when defines a variable in C++?
You need to explain the reason to a SA to pass the test.
Note
auto 关键字会根据初始化表达式的类型自动推断变量的类型。在这里,a 的类型被推断为 double,因为它在赋值时接收了浮点数。
Answer
- 首先,我们看到 auto a = 10;,这里 a 被初始化为整数值 10。
- 接着,a = 20.5; 将 a 的值更新为浮点数 20.5。这是一个显式的类型转换,因为我们将浮点数赋给了整数类型的变量。
- 最后,a += 10.5; 将 a 的值增加了 10.5,结果为 31.0。
因此,这段程序的输出结果是 31.0。