C中输入格式的控制

这是之前学习的时候总结的,犹豫之下还是将其帖出来!

/*scanf

 *跳过所有的空白字符,直到遇到非空白字符为止;
 *scanf("格式串",地址表(&)) --- 输入的值放在地址表中
 * 在scanf的格式串中,如果放入了其它非空白字符,在输入是要求按原样输入;
 *因此,最好在scanf的格式串中不要添加非空白字符,只放格式占位符即可。
 * 对于字符 %c 占位符,在用scanf输入时,格式最好是--- scanf(" %c",&c),
 *在 %c的前面用一个空白字符,目的是跳过在输入时所有的空白字符
 *
 *%i / %d --- int --- 整数
 *%hd / %ld --- short int / long int 
 *%u --- unsigned int --- 无符号整数
 *%f / %lf --- float / double --- 浮点数
 *%c --- char --- 字符
 *%s --- string --- 字符串
 *%p --- address --- 地址
 *%x / %o --- 十六进制 / 八进制整数
 *%g --- float / double 去掉其尾部的零
 */
#include <stdio.h>
 
 /* 我们应该知道,从键盘输入的数据,首先会存储在键盘缓冲区;
 然后当按Enter 回车键后,数据才会进入输入缓冲区;最后scanf在
 输入缓冲区中读取数据。
注意:如果一次输入的数据多于要求输入的数据,这些多于的数据
 不会丢弃,会放在输入缓冲区供下次读取使用。 */
int main()
{
int i = 0;
char c = 0;
float f = 0;
double d = 0;
printf("请输入一个整数和一个小数:");
scanf("%d%f",&i,&f);
printf("i= %d,f= %f\n",i,f);

printf("请输入一个字符:");
/*下面的两种输入字符的方式有何不同?
我们应该知道的空白字符:空格、制表符(\t - 9)、
换行符(\n - 10) --- 将当前位置移到下一行开头
回车符(\r - 13) --- 将当前位置移到本行开头;
因此,在scanf的格式串中if 有空白字符,那么将会跳过在输入时的所有空白字符,
直到遇到非空白字符为止。*/
//scanf("%c",&c);
scanf(" %c",&c);
printf("c=[%c](%d)\n",c,c);

printf("请输入一个小数:");
scanf("%lf",&d);
printf("%g,%lf\n",d,d);

printf("请输入两个小数:");
/* 比较下面两种输入方法有何不同?
在scanf的格式串中,如果放入了其它非空白字符,在输入是要求按原样输入;
否则,输出的数据将不是所期望的。(后面一个格式占位符所要求输入的数据将是垃圾数据)
  因此,最好在scanf的格式串中不要添加非空白字符,只放格式占位符即可。*/
//scanf("%f,%lf",&f,&d);
scanf("%f%lf",&f,&d);
printf("f= %f,d= %lf\n",f,d);
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值