关于scanf的一些小发现

今天写一个代码(非模仿),是关于写一个函数![输入图片说明]
(https://foruda.gitee.com/images/1665645429147769518/febbe734_11753536.jpeg "IMG_20221013_151158_edit_1298854288274204.jpg")
刚开始本人写上了scanf("%d\n", &x);
但是发现运行时输入数据后回车,并没有出现想象中的结果,然后本人尝试许久,发现再输入一个数据或者字符再按回车就会出现最后结果,而后本人将\n删除,发现这时输入数据按回车可直接得到最后结果,为什么呢?

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int x, y;
	printf("请输入x的值:\n");
	scanf("%d", &x);
	if (x < 1)
		y = x;
	else if (x >= 1 & x < 10)
		y = 2 * x - 1;
	else
		y = 3 * x - 11;
	printf("y=%d\n", y);
	return 0;
}


一段时间过后的猜想:是不是因为回车与空格对于scanf来说相当于是终止符,scanf读取了回车后就停止读取了,而我再输入一个字符后,scanf继续操作,再按回车就可以得出最后结果。(自己写的\n和回车还是有差别)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值