在C语言中,scanf
函数用于从标准输入(通常是键盘)读取输入,并将输入的值存储到指定的变量中。当使用scanf
函数时,如果在格式控制字符串中加入空格(或者换行符、制表符等空白字符),则scanf
函数会在读取输入时忽略任意数量的空白字符,直到遇到非空白字符为止。
因此,当使用scanf("%d ", &num)
时,scanf
函数会一直等待用户输入,直到用户输入一个非空白字符。这是因为%d
表示要读取一个整数,而后面的空格表示要忽略任意数量的空白字符。所以如果用户输入了一个整数后没有输入空白字符,scanf
函数会一直等待用户输入空白字符,导致程序似乎一直在等待输入。
为了避免这种情况,应该避免在scanf
的格式控制字符串中使用空格,或者使用getchar
函数来清除输入缓冲区中的多余空白字符。
例如: