C++中八进制、十六进制输入输出

实验二 基本数据处理

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
using namespace std;

int main()
{
	int a = 020;
	float b = 0.1239567f;
	char c = 'A';

	cout << "a=" << a<

这样的结果是:

C++中八进制、十六进制输入输出_第1张图片

显然不是题目要求的。

题目考察的知识点是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
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了。

你可能感兴趣的:(C++中八进制、十六进制输入输出)