每日学习新知识——输入输出

1.占位符列举

%а:十六进制浮点数,字母输出为小写。
%A:十六进制浮点数,字母输出为大写。%ç:字符。
%d:十进制整数。
%e:使用科学计数法的浮点数,指数部分的e为小写。
%E:使用科学计数法的浮点数,指数部分的E为大写。%i:整数,基本等同于%d。
%f:小数(包含float类型和double类型)。
%g:6个有效数字的浮点数。整数部分一旦超过6位,就会自动转为科学计数法,指数部分的为小写。
%G:等同于%g,唯一的区别是指数部分的E为大写。

%hd∶十进制short int类型。
%ho:八进制shor tint类型。
%hx:十六进制shor tint类型。
%hu:unsigned short int类型。%ld:十进制longint类型。
%lo:八进制longint类型。
%lx:十六进制longint类型。

%lu:unsigned long int类型

%lld:十进制long long int类型。%llo:八进制long long int类型。

%llx:十六进制long long int类型。

2%llu:unsignedl ong long int类型。
%Le:科学计数法表示的long double类型浮点数。
%Lf:long double类型浮点数。

%n:已输出的字符串数量。媒售往特本算不输出,只将值存猪在指定变量之中。
%o :八进制整数。%p :指针

%s:字符串。
%u:无符号整数(unsigned int)。

%x∶十六进制整数。

%zd: size_t类型。
%%∶输出一个百分号。

 %[]:在方括号中指定一组匹配的字符(比如%[0-9]),遇到不在集合之中的字符,匹配将会停止。

2.printf()允许限定占位符的最小宽度。

 例如:   %5d表示这个占位符的宽度至少为5位。如果不满5位,对应的值的前面会添加空格。
输出的值默认是右对齐,即输出内容前面会有空格;如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的%的后面插入一个-号。

输出

 3.  输出小数时,有时希望限定小数的位数。举例来说,希望小数点后面只保留两位,占位符可以写成%.2f。

%6.2f表示输出字符串最小宽度为6,小数位数为2。注意:小数点也占一位。

4.  C语言的数据都是有类型的,scanf()必须提前知道用户输入的数据类型,才能处理数据。
它的其余参数就是存放用户输入的变量,格式字符串里面有多少个占位符,就有多少个变量。


例如:  scanf("%d", &i)的第一个参数%d,表示用户输入的应该是一个整数。%d就是一个占位符,%是占位符的标志,d表示整数。第二个参数&i表示,将用户从键盘输入的整数存入变量 i.


注意:变量前面必须加上&运算符(指针变量除外),因为 scanf()传递的不是值,而是地址,即将变量i的地址指向用户输入的值。
如果这里的变量是指针变量(比如字符串变量),那就不用加  &运算符。

scanf()处理数值占位符时,会自动过滤空白字符,包括空格、制表符、换行符等。
所以,用户输入的数据之间,有一个或多个空格不影响scanf(()解读数据。另外,用户使用回车键,将输入分成几行,也不影响解读。


5.   除了%c以外,都会自动忽略起首的空白字符。%c不忽略空白字符,总是返回当前第一个字符,无论该字符是否为空格。
如果要强制跳过字符前的空白字符,可以写成scanf(" %c",&ch),即%c 前加上一个空格,表示跳过零个或多个空白字符。
下面要特别说一下占位符%s,它其实不能简单地等同干字符串。它的规则是,从当前第一个非空白
字符开始读起,直到遇到空白字符(即空格、换行符、制表符等)为止。
因为%s不会包含空白字符,所以无法用来读取多个单词,除非多个%s一起使用。这也意味着,
scanf()不适合读取可能包含空格的字符串,比如书名或歌曲名。另外,scanf()遇到%s占位符,会在字符串变量末尾存储一个空字符\0。
scanf()将字符串读入字符数组时,不会检测字符串是否超过了数组长度。所以,储存字符串时,很可能会超过数组的边界,导致预想不到的结果。为了防止这种情况,使用%s占位符时,应该指定读入字符串的最长长度,即写成%[m]s,其中的[m]是一个整数,表示读取字符串的最大长度,后面的字符将被丢弃。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值