你們要的魔鬼scanf來了咯

終於找到了我2018年寫的問題薄啦~

太激動啦!!!

還是那麼熟悉的C4droid~

那個時候剛上大一,啥也不知道,年輕莽撞,想法奇特很正常哈哈哈哈,現在來解決一下這個問題了如指掌啦~

參考我上一篇關於scanf的文章!!!

戳鏈接:scanf

在這裏插入圖片描述在這裏插入圖片描述

基本知識:

  • \n 是轉義字符,轉義字符是指,用一些普通字符的組合來代替一些特殊字符,由於其組合改變了原來字符表示的含義,因此稱爲“轉義”。比如 C 語言中,用“\n”來表示換行,“\r”表示回車,“\t”表示跳格等等,它們本身只是一個反斜槓和一個字母,但是卻被賦予了特殊的意義。

  • 轉義字符是不能在鍵盤上直接按照原樣輸出的,而是需要在鍵盤上輸入功能鍵,換句話說,我直接輸入\n不能解決換行的需求,這就是兩個字符而已。我們鍵盤上的這個Enter屬於回車換行,換行是光標從當前位置換到下一行;回車是光標從當前位置回到本行的行首;換行回車效果就是前面兩個效果的疊加,也就是換到下一行,並回到行首。回車符是Carriage Return, C語言中是’\r’;換行符是Line Feed, C語言中是’\n’;回車換行符實際是兩個字符, 就是\r\n。

  • \n 完全是兩個字符了,\本身比較特殊,所以\n 表示輸入字符\n。

  • \n是換行,在c中直接按回車鍵就可以了;\n是兩個單獨的字符\和n,即我們要輸入字符\n。

基本解釋:

  • 第一條,應該是需要鍵盤輸入Enter鍵,即換行,但是我輸入了\n,這就輸入字符了,和後面的%d不匹配,結果就出現問題了。

  • 第二條,應該是需要鍵盤輸入\n,即兩個字符,但是我輸入的\n,和\n不匹配,結果也出現問題了。

  • 第三條,沒有問題。

  • 第四條,應該是需要鍵盤輸入\n,即兩個字符,但是我輸入的換行,和\n不匹配,結果也出現問題了。

所以一個簡單的scanf格式化輸入,其實也包含着許多的知識,稍稍不注意,就會出現問題的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章