缓存和两个输入语句的含义

发布于 2021-12-01 08:27:36 字数 816 浏览 954 评论 2



#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{
	int bingo,num;
	char ch='y';
	srand((unsigned)time(NULL));
	while(ch=='y')
	{
		bingo = rand()%89+10;
		printf("-------%d--------n",bingo);
		
		while(num!=bingo)
		{
			scanf("%d",&num);
			if(num>bingo)
				printf("猜大了!n");
			else if(num<bingo)
				printf("猜小了!n");
		}
		printf("猜对了!n");
		printf("请输入是否继续(y/n):");
  /*下面为何用两个scanf,用一个不行啊,难道不是先输y再换行么,这样扫描到的字符不就是换行了*/
 /*清除缓存也可以,原理是啥了*/ 
              scanf("%c",&ch);
		scanf("%c",&ch);
	}
}




如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伪装你 2021-12-02 11:27:45

 scanf("%d",&num);这句并没有把n读出来,下面一个scanf读的是这里的换行符

躲猫猫 2021-12-02 05:59:32
#include <stdio.h>
#include <stdlib.h>


void main(const int argc, const char* argv[]){

char v='y';

while(v=='y'){

printf("scan:");
scanf("%c", &v);
printf("received %dn", v);
scanf("%c", &v);

printf("received %dn", v);
}

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文