实验二 基本数据处理
2_2 编程,定义变量a,值为八进制整数20,变量b,值为0.1239567,保留三位小数输出,变量c,值为大写字母A。
期望运行结果如下:
a=20
b=0.124
c=A
c++中输入八进制是以0开头的;如果是16进制,则是0x或者0X,如 int temp = 0XA; //temp == 10
简单粗暴点,定义后直接输出:
#include<iostream>
using namespace std;
int main()
{
int a = 020;
float b = 0.1239567f;
char c = 'A';
cout << "a=" << a<<endl;
cout << "b=" << b << endl;
cout << "c=" << c << endl;
system("pause");
return 0;
}
这样的结果是:
显然不是题目要求的。
题目考察的知识点是c++进制输出格式的考察。通过参考https://www.cnblogs.com/wjw2018/p/9286079.html这个链接博客,了解到:dec指示cout以十进制输出,hex指示cout以十六进制输出,oct指示cout以八进制输出
小数输出精度控制,可以通过cout.precision(x)接口去实现,x为显示的有效位数或小数位数将固定表示法的小数点后面。这样设置后程序的cout流输出的小数都是保留x有效位。目前我也没有找到啥方法能还原回去。或者使用兼容C的printf("%0.3f", x)
改后的代码如下:
#include<iostream>
using namespace std;
int main()
{
int a = 020;
float b = 0.1239567f;
char c = 'A';
cout << "a=" << oct << a << endl;
cout.precision(3);
cout << "b=" << b << endl;
cout << "c=" << c << endl;
system("pause");
return 0;
}
这样输出就OK了。