- 6
- 0
- 约5.21千字
- 约 9页
- 2016-11-26 发布于广东
- 举报
你好!我想请教你关于利用scanf函数输入时,留在键盘缓冲区的\n(ASCII值为10)的问题。期待你的回答。至于分数,你想要多少,说就行。我昨晚写程序时对scanf在键盘缓冲区留下的字符有疑问,思考不果。看了百度百科上的scanf词条,说scanf输入遇到空格、跳格、回车才会从缓冲区往变量送字符。于是自己写了以下几个程序思考,还是不果。
程序1
#include stdio.h
void main()
{
char a;
char b;
scanf(%d,a);
scanf(%d,b);
printf(%d %d,a,b);
}
键盘输入
97回车96回车
输出
97 96
问题1:调用第一个scanf输入时,键盘缓冲区所有的字符为97\n,遇到回车,所以缓冲区把97赋值给a。调用第二个scanf输入时,键盘缓冲区所有的字符为96\n,遇到回车,所以缓冲区把96赋值给b。以上我的分析对吗?
程序2
#include stdio.h
void main()
{
char a;
char b;
scanf(%c,a);
scanf(%c,b);
printf(%d %d,a,b);
}
键盘输入
9回车
输出
57 10
问题2:调用第一个scanf输入时,键盘缓冲区所有的字符为9\n,遇到回车,所以缓冲区把9赋值给a。调用
原创力文档

文档评论(0)