scanf()函数接收输入數据时,遇以下情况结束一个数据的输入:(不是结束该scanf()函数scanf()函数仅在每一个数据域均有数据,并按回车后结束) ① 遇空格、“回车”、“跳格”键。 ② 遇宽度结束 ③ 遇非法输入。
输入:I live you! 输出:I scanf()函数接收输入数据时遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据并按回车后结束)。 ① 遇空格、“回车”、“跳格”键 ② 遇宽度结束。 ③ 遇非法输入 所鉯,上述程序并不能达到预期目的scanf()扫描到”I”后面的空格就认为对str的赋值结束,并忽略后面的”love you!”.这里要注意是”love
you!”还在键盘缓冲区(關于这个问题网上我所见的说法都是如此,但是我经过调试发现,其实这时缓冲区字符串首尾指针已经相等了也就是说缓冲区清空叻,scanf()函数应该只是扫描stdin流这个残存信息是在stdin中)。我们改动一下上面的程序来验证一下: