我们如何看到与输入文件流(STDIN)相关联的缓冲区的内容。假设我们使用scanf,getchar或任何输入函数给出输入,它实际上是如何存储在缓冲区中的。特别是当我们按下"进入"关键。
示例:
情况下:1)
$输入两个整数: 10 20(输入) $ input两个整数: 10(进入) 20(输入)
案例2:
$输入两个字符 a b(输入) $输入两个字符 一个(输入) B(输入)
为什么在情况1中它忽略空格键(ASCI-32)但在case2中它将空格键作为下一个输入。是scanf功能或终端的属性。
答案 0 :(得分:0)
在第一种情况下
这里是忽略空格键,因为根据ascii字符集“空格”是
一个字符,其十进制的ascii值为32
当“%d”遇到值32时,它会忽略它,因为它不能是整数,因为
整数文字的范围介于48(0)和57(9)之间。
而
在第二种情况下,我们使用“%c”来输入空格(ascii-32)为
的字符
一个完全有效的输入,因此不被忽略。
您也可以使用%d输入字符,但是您必须提供ascii值
对于您要输入的字符,例如:
如果要输入并显示“A”作为字符,则输入必须为65.
希望这有助于清除一些事情。