日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言scanf为啥有时候要输入两次(解析)

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言scanf为啥有时候要输入两次(解析) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言scanf為啥有時候要輸入兩次(解析)

我們先看一下這個例子:

我們看上面的圖片,一個scanf()一個格式控制符我們卻輸入了兩次,這是因為我們在scanf()里加入了’ \n ‘。
簡單地說:如果在格式字符串(出現了空白字符(空格、\n、\t之類),那么 scanf() 會吃掉輸入中所有接下來的空白字符。也就是說,在這段代碼中 scanf 會等到輸入中出現非空白字符才會返回。而scanf()函數的結束是回車,所以我們輸入了 1,回車,2,當輸入2時,空白字符的吃掉效果就消失了這時再回車結束。1因為先進緩沖區, 所以1賦給了a。注意這時候緩沖區有,你輸入的空白符,2。當再次賦值時候scanf()忽略空白符,把有效數字賦值,但如果下一句是 ‘%c’,那么空白符就賦值了,因為’ %c '這個參數只要緩沖區例的第一個字符,無論是啥。

你可能會這樣想,輸入了1,按回車,scanf()中有回車所以回車被吃掉了。其實回車和空格、\t等一些都是空白字符一樣的,并無差異。 你可以輸入 1 空格 2 回車。和上面效果一樣,只要輸入個空白符就行。
例:

效果和第一張圖是一樣的。

接下來看一張圖

上圖的格式字符串里也有空白字符不過是空格了,我們可以看到它和格式字符串里加\n的效果是一模一樣的。這就更說明了格式字符串里加
’ \n’ ,’ \t ’ ,空格等空白字符,它們的效果是一模一樣的。

總結

以上是生活随笔為你收集整理的C语言scanf为啥有时候要输入两次(解析)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。