C/C++输出格式与输出控制符

C语言输出格式控制符大全

1.%c 输出一个单一的字符

        1)c字符也有域宽跟d字符形式一样。在0~127中,也可以用”%c“的形式输出例如:(输出的是a 因为a对应的ASCII的码是97 所以即输出a)

        
2.%hd、%d、%ld 以十进制有符号的形式输出 short、int、long 类型的整数

        1)%d,按整型数据的实际长度输出。

        2)%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于                     m,则按实际位数输出。

        3)%lld,双长整型数据。

        

3.%hu、%u、%lu 以十进制无符号的形式输出 short、int、long 类型的整数


4.%ho、%o、%lo 以八进制不带前缀无符号的形式输出 short、int、long 类型的整数


5.%#ho、%#o、%#lo 以八进制带前缀无符号的形式输出 short、int、long 类型的整数


6.%hx、%x、%lx
%hX、%X、%lX 以十六进制不带前缀无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写


7.%#hx、%#x、%#lx
%#hX、%#X、%#lX 以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写


8.%f、%lf 以十进制的形式输出 float、double 类型的小数

        1)​实数中的整数部分全部输出,小数部分输出6位。

        2)指定数据宽域和小数位数。

        


9.%e、%le
%E、%lE 以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写


10.%g、%lg
%G、%lG 以十进制指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写


11.%s 输出一个字符串

        1)%ms 输出字符串占m列,如果字符串本身长度超过m,则可以超过m列,全数输出;如果               字符串小于m,则在左边补空格。
        2)%-ms 输出字符串占m列,如果字符串小于m,则字符串靠左,右侧补空格。
        3)%m.ns。输出占m列,但只取字符串中的左端n个字符,这n个字符输入输出在m列的右                    侧,左侧补空格。
        4)%-m.ns。n个字符输出在m列的左侧,右侧补空格。

C++输出保留指定位小数(输出精度控制)

C++的精度控制需要头文件

#include<iomanip>

输出时使用setprecision()和fixed进行精度控制和补0
在使用时,可以提前声明,也可以直接写在输出流中

float a = 0.123;
cout << a << endl;//输出 0.123

cout << setprecision(5) << a << endl;//输出 0.123

//方法一:
cout << setiosflags(ios::fixed) << setprecision(5);
cout << a << endl;//输出 0.12300
//方法二:
cout.setf(ios::fixed);
cout << setprecision(5);
cout << a << endl;//输出 0.12300
//方法三:
cout << fixed << setprecision(5) << a;//输出 0.12300

需要保留几位小数,就将 setprecision(n) 的括号里n换成几

上面的语句写一次就够了,对之后的数字都有效

函数 setprecision() 控制输出流的输出精度(精度控制采用四舍五入
注意:setprecision单独使用是控制有效位数的,与fixed合用才是控制小数点后位数的

	float a=12.123456;
	cout<<setprecision(3)<<a; //输出12.1
	cout<<fixed<<setprecision(3)<<a;//输出12.123

fixed是设置补0,以下三种写法任选其一即可

	cout<<setiosflags(ios::fixed);
	cout.setf(ios::fixed);
	cout<fixed;

不需要补0时,可以关闭

	cout.unsetf(ios::fixed); 

C++输出格式控制符

1.格式控制符

dec  设置整数的基数为10,十进制
hex  设置整数的基数为16,十六进制
oct  设置整数的基数为8,八进制
setbase(n)  设置整数的基数(进制)为n(n只能是16,10,8之一)
setfill(c)  设置填充字符c,c可以是字符常量或字符变量
setprecision(n)  设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以                              fixed(固定小数位数)形式和scientific(指数)形式输出时,n为小数位数
setw(n)  设置字段宽度为n位。
setiosflags(ios::fixed)  设置浮点数以固定的小数位数显示。
setiosflags(ios::scientific)  设置浮点数以科学计数法(即指数形式)显示。
setiosflags(ios::left)  输出数据左对齐
setiosflags(ios::right)  输出数据右对齐
setiosflags(ios::shipws)  忽略前导的空格
setiosflags(ios::uppercase)  在以科学计数法输出E和十六进制输出字母X时,以大写表示。
setiosflags(ios::showpos)  输出正数时,给出“+”号。
resetiosflags  终止已设置的输出格式状态,在括号中应指定内容。

2.用流对象的成员控制输出格式

流成员函数与之作用相同的控制符作用
precision(n)setprecision(n)设置实数的精度为n位
width(n)setw(n)设置字段宽度为n位
fill(c)setfill(c)设置填充字符c
setf( )setiosflags( )设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中内容相同
ubsetf( )resetiosflags( )终止已设置的输出格式状态

3.设置格式状态的格式标志

ios::left  输出数据在本域宽范围内左对齐
ios::right  输出数据在本域宽范围内右对齐
ios::internal  数值的符号位在域宽内左对齐数值右对齐中间由填充字符填充
ios::dec  设置整数的基数为10
ios::oct  设置整数的基数为8
ios::hex  设置整数的基数为16
ios::showbase  强制输出整数的基数(八进制以0打头,十六进制以0x打头)
ios::showpoint  强制输出浮点数的小点和尾数0
ios::uppercase  在以科学计数法输出E和十六进制输出字母X时,以大写表示
ios::showpos  输出正数时,给出“+”号。
ios::scientific  设置浮点数以科学计数法(即指数形式)显示
ios::fixed  设置浮点数以固定的小数位数显示
ios::unitbuf  每次输出后刷新所有流
ios::stdio  每次输出后清除 stdout,stderr

4.使用细节及注意事项

1.成员函数width(n)和控制符setw(n)只对其后的第一个输出项有效。如果要求在输出数据时都按指定的同一域宽n输出,不能只调用一次width(n),而必须在输出每一项前都调用一次width(n)

2.在用成员函数serf和控制符setiosflags设置输出格式状态后,如果想改设置为同组的另一状态,应当调用成员函数unsetf(对应于成员函数serf)或resetiosflags(对应于控制符sefiosflags),先终止原来设置的状态,然后再设置其他状态。


3.对输出格式的控制,既可以用控制符,也可以用cout流的有关成员函数,二者的作用是相同的。控制符是在头文件mmamp中定义的,因此用控制符时,必须包含iomanip头文件。cout流的成员函数是在头文件iostream中定义的,因此只需包含头文件iostream,不必包含iomanip。可以在一个cout输出语句中连续使用多种控制符(如上面精度控制所讲)。

5.测试部分控制符

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C语言中的输出格式控制符用于指定输出的格式。以下是一些常用的输出格式控制符: - %c:输出一个单一的字符。 - %d、%ld:以十进制、有符号的形式输出short、int、long类型的整数。 - %u、%lu:以十进制、无符号的形式输出short、int、long类型的整数。 - %o、%lo:以八进制、不带前缀、无符号的形式输出short、int、long类型的整数。 - %#o、%#lo:以八进制、带前缀、无符号的形式输出short、int、long类型的整数。 - %x、%lx:以十六进制、不带前缀、无符号的形式输出short、int、long类型的整数。如果x小写,输出的十六进制数字也小写;如果X大写,输出的十六进制数字也大写。 - %#x、%#lx:以十六进制、带前缀、无符号的形式输出short、int、long类型的整数。如果x小写,输出的十六进制数字和前缀都小写;如果X大写,输出的十六进制数字和前缀都大写。 - %f、%lf:以十进制的形式输出float、double类型的小数。 - %e、%le:以指数的形式输出float、double类型的小数。如果e小写,输出结果中的e也小写;如果E大写,输出结果中的E也大写。 - %g、%lg:以十进制和指数中较短的形式输出float、double类型的小数,并且小数部分的最后不会添加多余的0。如果g小写,当以指数形式输出时e也小写;如果G大写,当以指数形式输出时E也大写。 - %s:输出一个字符串。 以下是一个使用示例: ```c #include <stdio.h> int main() { int a = 12; float b = 3.1415; char c = 'A'; printf("%d\n", a); printf("o%o\n", a); printf("0x%x\n", a); printf("%3.2f\n", b); printf("%c\n", c); return 0; } ``` 输出结果为: ``` 12 o14 0xc 3.14 A ``` 希望这个回答对你有帮助!\[1\] \[2\] #### 引用[.reference_title] - *1* [C语言 printf](https://blog.csdn.net/imxlw00/article/details/89287406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [[C语言]格式控制符](https://blog.csdn.net/m0_74290207/article/details/129461436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hiOoo.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值