关于for循环scanf_s函数跳过的原因
详情:
今天一个循环,乍一看,逻辑没问题,程序没问题,代码没问题,但是程序一直出错,卡了老久了老久了,自己记录一下。
问题:
i从0开始循环,但是永远跳过i=0的那一趟,直接输出i=1的结果,本来以为是字符用scanf_s函数不太标准(因为有警告)的原因,后来自己又用了getchar()函数,最后还是不行,后来查了很多资料,才知道,原来换行符会默认作为下一个scanf_s函数的输入,大概是这么个意思,(具体查看更标准的资料,哈哈哈)然后,解决方法来了。
解决方法:
1、用getchar()函数把换行符给吸收掉(吸收掉就是把它给存进别的变量里,大概是这么个意思,哈哈哈),然后在用scanf_s函数存变量,或者getchar函数
2、scanf_s("%c%*c", &x);
这里%*c的意思是读入一个字符(也就是回车),但是不保存到任何变量里。这样子也是可以的。图片就不上了。。。