ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++中如何精确地输出特定类型的位数

2022-03-02 11:35:41  阅读:202  来源: 互联网

标签:输出 cout 字符 cin C++ 位数 精确 printf pai


precision()函数和fixed合用的方法。

其中,fixed表示使用一般的方法(不是科学计数法之类的)输出浮点数。
precision是cout自定义的函数,用来设置小数输出位数的精度。
注意:如果precision函数没有配合fixed使用的话,它表示的精度就包括了小数的位数。

double pai = 3.1415926535;
cout.precision(5);
cout<<pai<<endl; //3.1416
cout<<fixed<<pai<<endl; //3.14159

使用setprecision()格式控制符。

使用setprecision格式控制符,就要声明头文件#include<iomanip>
setprecision(n)设置精度,其中n表示输出n位。

double pai = 3.1415926535;
cout<<setprecision(5)<<pai<<endl; //3.1416
cout<<fixed<<setprecision(5)<<pai<<endl; //3.14159

使用setw(n)和setfill()。

setw(n)表示输出n个长度的字段。
setw()函数只对紧接着的输出产生作用,当后面紧跟着的输出字段长度小于n时,在该字段前面用空格补齐,当输出字段长度大于n时,全部整体输出。
setw()不仅可以输出数字,也可以输出字符串等类型的数据。
setw() 默认填充的内容为空格,可以 setfill() 配合使用设置其他字符填充。

double pai = 3.1415;
cout<<setw(8)<<pai<<endl; // 3.1415
cout<<setw(8)<<setfill('*')<<pai<<endl; //**3.1415
当然,C++兼容C语言,可以用C语言中的方法设置精度。

printf(“格式控制字符串”,输出表列)。

格式控制字符串 为 %- 0 m.n l/h 格式字符
% 为格式说明的引导符号,- 为指定左对齐输出,0 为 指定空位填0,m.n 指定输出域宽及精度,即m为输出总位数,n为小数点后位数,l/h 输出长度的修正,格式字符为指定输出的数据类型。

double pai = 3.1415926535;
printf("%.4lf\n",pai);
printf("%8.4lf\n",pai);
printf("%-8.4lf\n",pai);
printf("%08.4lf\n",pai);

执行结果:

printf是格式化输出函数,它可以直接打印十进制,八进制,十六进制,输出控制符分别为%d, %o, %x, 但是它不存在二进制,如果输出二进制可以调用stdlib.h里面的itoa函数。
itoa函数原型为char*iota(int value,char *string,int radix);value为被转化的整数,string为转换后储存的字符数组,radix为要转换的进制数

#include<cstdio>
#include<cstring>
#include<cstdlib>//注意。itoa函数要包含这个头文件
using namespace std;
int main()
{
int a=12;
printf("八进制 %o\n",a);
printf("十六进制 %x\n",a);
printf("十进制 %d\n",a);
char s[40];//要转换成的字符数组
itoa(a,s,2);//itoa转为二进制
printf("二进制 %s\n",s);//s就是你转换成的数组
itoa(a,s,3);//转为三进制
printf("三进制 %s\n",s);
return 0;
}

参考:https://blog.csdn.net/qq_34261446/article/details/101610892

在c/c++系统中除了标准的输入输出外,还提供了更多的输入函数。
这写函数主要有getch(),getche(), getchar (),cin.get(),putch(),putchar(),cout.put(),gets(),cin.getline(),puts()。

另外 还有些为了让缓冲区不影响程序的正确操作的缓冲去的操作,如:cin.putback(),fflush(stdin),cout.flush().我们 做一下简单的说明。

1、getch()和getche(),非缓冲式输入,从键盘读入一个字符。getch()读入字符不显示。有conio.h支持。

2、cin.get(),getchar(),缓冲式输入,从键盘读入一个字符,并显示。getchar()由stdio.h支持,cin.get()由iostream.h支持。

3、putch()和putchar(),非缓冲式输出,输出一个字符到显示器。putch()由conio.h支持,putchar()由stdio.h支持。

4、cout.put(),缓冲式输出,输出一个字符到显示器。由iostream.h支持。

5、gets()和cin.geline(),缓冲式输入,读入一字符串(包括空格,不包括最后的回车),gets()由stdio.h支持,cin.getline()由iostream.h支持。

6、puts(),非缓冲输出,输出一个字符串,由stdio.h支持。

7、cin.putback(),把一个字符送回输入缓冲区。

8、fflush(stdin),清除输入缓冲区操作。无法清除cin.get()等带来的操作。

9、cout.flush(),清楚输出缓冲区。 在这里我们稍微说一下输入/输出缓冲区,这是为了减少程序访问io带来中断而设的一段空间。当程序满足某个刷新条件时,那就将清理缓冲区。具体条件为:

 

标签:输出,cout,字符,cin,C++,位数,精确,printf,pai
来源: https://www.cnblogs.com/klb561/p/15954272.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有