没有合适的资源?快使用搜索试试~ 我知道了~
结合C语言缓冲区谈scanf()函数
5星 · 超过95%的资源 需积分: 49 15 下载量 78 浏览量
2018-06-24
21:47:12
上传
评论 10
收藏 19KB DOCX 举报
温馨提示
试读
3页
scanf() 是带有缓冲区的。遇到 scanf() 函数,程序会先检查输入缓冲区中是否有数据: • 如果没有,就等待用户输入。用户从键盘输入的每个字符都会暂时保存到缓冲区,直到按下回车键,输入结束,scanf() 再从缓冲区中读取数据,赋值给变量。 • 如果有数据,哪怕是一个字符,scanf() 也会直接读取,不会等待用户输入
资源推荐
资源详情
资源评论
scanf() 是带有缓冲区的。遇到 scanf() 函数,程序会先检查输入缓冲区中是否有数据:
如果没有,就等待用户输入。用户从键盘输入的每个字符都会暂时保存到缓冲区,直
到按下回车键,输入结束,scanf() 再从缓冲区中读取数据,赋值给变量。
如果有数据,哪怕是一个字符,scanf() 也会直接读取,不会等待用户输入。
请看下面的例子:
1. #include<stdio.h>
2. #include<stdlib.h>
3. intmain()
4. {
5. inta,b,c;
6. scanf("%d",&a);
7. scanf("%d",&b);
8. scanf("%d",&c);
9. printf("a=%d, b=%d, c=%d",a,b,c);
10.
11. system("pause");
12. return0;
13. }
运行结果:
100 200 300↙
a=100, b=200, c=300 程序执行到第一个 scanf(),由于缓冲区中没有数据,所以会等
待用户输入。从键盘输入 100 200 300 后按下回车键,输入就结束了,scanf() 开始从
缓冲区中读取数据。由于控制字符串是"%d",所以它会读取一个整数,这里匹配到的整
数是 100。接下来将 100 赋值给变量 a,并将 100 从缓冲区中删除,此时缓冲区中剩下
200 300。
注意:scanf() 匹配到想要的数据后,会将匹配到的数据从缓冲区中删除,而没有匹配到
的数据仍然会留在缓冲区中。
执行到第二个 scanf() 时,检测到缓冲区中有内容,所以不会等待用户输入,而是直接从
缓冲区中读取。此时缓冲区中的内容为 200 300,scanf() 会匹配到整数 200,并将 200
从缓冲区中删除,剩下 300。
执行到第三个 scanf() 时,同理会匹配到 300,并将 300 赋值给变量 c。
再来看一个例子:
1. #include<stdio.h>
2. #include<stdlib.h>
3. intmain()
4. {
资源评论
- 秦小茗同学2019-10-07还不错。。。。。。
qq_32449063
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功