4. 29 C语言 程序结构-初级

本文详细介绍了C语言中printf函数的格式控制字符及其用法,包括有符号整数、无符号整数、实数、字符和字符串的输出格式。同时,文章还提到了使用printf函数需要注意的点,如格式控制符与表达式匹配、输入输出顺序等。此外,文中通过示例介绍了scanf函数的使用,用于输入处理,包括整数、浮点数、字符等不同数据类型的读取。文章最后给出了多个使用循环和选择结构的编程练习,帮助读者巩固C语言的基础知识。
摘要由CSDN通过智能技术生成

printf 函数中的格式转化字符及其含义 

 

格式转换符 

含义 

对应的表达式数据类型 

%d  %i 

以十进制形式输出一个整型数据 

有符号整数 

%x  %X 

以十六进制格式输出一个无符号整型数据 

无符号整数 

%o 

以八进制格式输出一个无符号整型数据 

无符号整数 

%u 

以十进制格式输出一个无符号整型数据 

无符号整数 

%c 

输出一个字符型数据 

字符型 

%s 

输出一个字符串 

字符串 

%f 

以十进制小数形式输出一个浮点型数据 

浮点型 

%e  %E 

以指数形式输出一个浮点型数据 

浮点型 

%g  %G 

自动选择合适的形式输出数据 

浮点型 

%p 

以主机的格式显示指针 

指针类型


另外,可以在格式转换字符和%之间插入一些辅助的格式控制字符。因此,格式控制字符的一般格式为: 

%[flag][width][.precision][size]Type 


有符号整数的输出 

输出有符号整数的格式控制符的一般形式为: 

%[-][+][0][width][.precision][l][h]d 

其中各控制符的说明如下: 

  • -:表示输出的数据左对齐,默认时是右对齐。 

  • +:输出正数时,在数的前面加上+号。 

  • 0:右对齐时,如果实际宽度小于width,则在右边的空位补0 

  • width:无符号整数,表示输出整数的最小宽度。若实际宽度大于width,则按照实际宽度输出。 

  • precision:无符号整数,表示至少要输出precision位。若整数的位数大于 precision,则按照实际的位数输出,否则在左边的空位上补0 

  • l:输出长整形数据 

  • h:输出短整形数据 

 

无符号整数的输出 

输出无符号整数的格式控制符的一般形式为: 

%[-][#][0][width][.precision][l][h]u|o|x|X 

其中各控制符的说明如下: 

  • #:当以八进制形式输出数据(%o)时,在数字前输出0;当以十六进制形式输出数据(%x%X)时,在数字前输出0x0X 

  • precision:与前面介绍的相同,但要注意八进制数字前的0和十六进制前的0x0X同样占位数。 

  • 其他字段与前面介绍的相同。 

 

小结 

格式转换符 

数据类型 

%u 

unsigned int 

%ld 

long 

%lx 

十六进制表示long 

%lo 

八进制表示long 

%hd 

short 

%hx 

十六进制表示short 

%ho 

八进制表示short 

%lu 

unsigned long 

%lld 

long long 

%llu 

unsigned long long 

 

实数的输出 

输出实数的格式控制符的一般形式为: 

%[-][+][#][0][width][.precision][l|L]f|e|E|g|G 

其中各控制符的说明如下: 

  • #:必须输出小数点。 

  • precision:规定输出实数时,小数部分的位数。 

  • l:输出double型数据(默认也是输出double型数据)。 

  • L:输出long double型数据。 

  • 其他字段的含义与前面介绍的相同。 

 

字符和字符串的输出 

输出字符和字符串的格式控制符的一般形式为: 

输出字符:%[-][0][width]c 

输出字符串:%[-][0][width][.precison]s 

其中各控制符的说明如下: 

  • precision:只输出字符串的前precision个字符。 

  • 其他字段的含义与前面介绍的相同。 

 

其它可用的修饰符 

标志 

意义 

(空格) 

有符号的值若为正,则显示时带前导空格(但是不显示符号);若为负,则带减号符号。+标志会覆盖空格标志。 

示例:"% 6.2f" 

* 

如果您不想事先指定字段宽度,而是希望由程序来指定该值,那么您可以在字段宽度部分使用*代替数字来达到目的,但是您也必须使用一个参数来告诉函数字段宽度应该是什么。(注意在scanf函数中*是另一种含义。 

示例:printf("The number is: %*d.\n", width, number); 

 

使用printf函数要注意一下几点 

1. 格式控制字符串后面表达式的个数一般要与格式控制字符串中的格式控制符的个数相等。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值