C语言第三章错题分析

第三章:

scanf函数的各种用法

在详细的过一遍第三讲之后,发现了scanf函数的各种用法
下面对scanf函数进行个人总结
真的在细究每一个scnaf函数之后,在我看来scanf函数是一个格式非常严格,甚至可以说是呆板的函数,我个人觉得scanf函数还有点蠢说真的。比如下面常见形式:

scanf("%d%d%d",&a,&b,&c);
scanf("%d %d %d",&a,&b,&c);
scanf("%d,%d,%d",&a,&b,&c);

这三种都是很常见的,但是对于键盘的输入形式却有着严格的规定:
先看前两种,前面是不可以加逗号的,只能用空格进行隔开输入,而且我还发现一个有意思的事情,第一种不能用回车来输入,可能是有缓冲区吧,但是第二个也可以用回车来实现输入,
第三种就是非常的呆板,只能严格按照有逗号的形式来输入数据

scanf("%3d",&x);//意味着只能取出来三个

如果输入的是12345,最后得到的结果只能是123,这需要和printf函数做出区别。

对于printf函数,需要注意
%X,%x分别表示16进制的大小写
带有%8l,表示以long形式打印,而且左对齐八位,不够补空格
%o:八进制
%e:科学计数法
%#:在前面带可选标记,如果是%#o这样前面带0,%#x,这样16进制前面带0x真的非常细啊
对double类型:scanf用:%lf
对float类型,scanf用:%f
对double或者float,printf用:%f或者%lf都可以
由此可见,scanf函数其实小细节真的很多,个人感觉真的很傻逼

        int x, y, z;
		scanf("%d%d%d", &x, &y, &z);
		printf("x+y+z=%d\n", x + y + z);
		return 0;

如果是1,1,1这样输入加回车,就错了,因为不能用逗号的

    char c1, c2, c3;
	scanf("%c%c%c", &c1, &c2, &c3);
	printf("%c %c %c", c1, c2, c3);
	return 0;

如果是输入a b c,是得不到a b c的,因为还有缓冲区\n,其实c1打印的是\n,然后才有a b。
要想正常打印,得
scanf(“%c %c %c”, &c1, &c2, &c3);有空格才行。
你看空格好像可以占据换行符以及空格,可以看见scanf函数要是想要细考,真的会有很多小知识点,我个人感觉真的非常的反人性,好恶心,设计的一点都不合理。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值