专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

问个scanf的有关问题 头弄的比较大

发布时间:2011-06-28 16:18:59 文章来源:www.iduyao.cn 采编人员:星星草
问个scanf的问题 头弄的比较大
程序1:
void main()
{
 char a;
 scanf("%d",&a);//这里是"%d"
printf("%d",a);
}
//注释:这里明显缓冲区里留有一个字符:是回车符,0AH.
程序2:void main()
{
 char a;
 char b;
 scanf("%d",&a);//这里是"%d"
 scanf("%d",&b);
printf("%d %d",a,b);
}
问题:为什么这个程序缓存区只有一个回车字符,我觉得应该有两个,第一个回车字符去哪里了?

------解决方案--------------------
你从哪看到有两个回车符了?第二次输入的时候前一次的缓冲被清除了。
------解决方案--------------------
命令行的输入是行缓冲!回车符只是一个缓冲送出的标志~!
------解决方案--------------------
?? 楼主说的是什么意思,程序运行时,你输入什么呀
第一个,我输入的是:1Enter,输出的也是:1
第二个,我输入的是:1Enter1Enter,输出的也是:01
要是说到缓冲区,我就不明白了,等待高手赐教
------解决方案--------------------
支持楼上的
------解决方案--------------------
是二楼的
------解决方案--------------------
学习学习
------解决方案--------------------
而第二个程序的第二个scanf在输入后 缓冲区仍存在回车字符?
who say it~!
------解决方案--------------------
回车 表示将输入缓冲区中的数据送入内存 不算作输入字符
------解决方案--------------------
围观。
------解决方案--------------------
探讨
程序1:
void main()
{
char a;
scanf("%d",&a);//这里是"%d"
printf("%d",a);
}
//注释:这里明显缓冲区里留有一个字符:是回车符,0AH.
程序2:void main()
{
char a;
char b;
scanf("%d",&a);//这里是"%d"
scanf("%d",&am……

------解决方案--------------------
White-space characters: blank (' '); tab ('\t'); or newline ('\n'). A white-space character causes scanf to read, but not store, all consecutive white-space characters in the input up to the next non–white-space character. One white-space character in the format matches any number (including 0) and combination of white-space characters in the input.

------解决方案--------------------
前段时间c版有个讲这个的帖子很详细,楼主自己去搜下
------解决方案--------------------
学习学习!!! 谁给个正解 详细点……
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: