在scanf()語句中,空格有特殊作用:一般在編寫程式時,不提倡寫入空格,因為可能會出現難以預知的變化。因為它規定:(1)當輸入的是數字時,比如scanf("%d",a);這時你輸入空格是當作沒有輸入的,如輸入“(空格)(空格)(空格)(回車)“,程式還在那裡等著呢!可是如果你如果輸入”(空格)(空格)123(空格)(回車)“則程式把123賦值給了a,執行的是a=123——直接把空格給忽視啦!!。所以,這時的空格基本上是等於白按。(2)如果你在%d前面加上一個空格,如scanf("(空格)%d",a);,跟第(1)項的內容還是一樣的。(3)當輸入的是字串時,比如scanf("%c",a);這時你輸入的所有內容都是有效的,但它只取第一個字元。如你輸入”abc(回車)",則a="a",後面的字元也等於沒用上。如果你按的是“(空格)abc(回車)”,則a=(空格)——還是第一個空格!!如果按“(空格)(空格)(空格)(回車)”則a=(空格)——因為第一個字元是空格。(4)如果你在%c前面加上一個空格,如scanf("(空格)%c",a);,這時出現了變化!!它直接把前面的空格忽視,你如果這時按“abc(空格)(回車)”,則仍然a="a",可是你這時如果按(空格)abc(回車)”,則a=“a"——最前面的那一個空格被忽視了!!最可恨的是當你按“(空格)(空格)(空格)(回車)”時,程式還在等待中,它把你按的空格全部忽視了。分析到這兒(應該說還沒有分析完全),你應該知道空格的作用了,所以,出現了你發出來的上圖的情況,你自己分析原因吧!為避免出錯,一般不要加入空格。
在scanf()語句中,空格有特殊作用:一般在編寫程式時,不提倡寫入空格,因為可能會出現難以預知的變化。因為它規定:(1)當輸入的是數字時,比如scanf("%d",a);這時你輸入空格是當作沒有輸入的,如輸入“(空格)(空格)(空格)(回車)“,程式還在那裡等著呢!可是如果你如果輸入”(空格)(空格)123(空格)(回車)“則程式把123賦值給了a,執行的是a=123——直接把空格給忽視啦!!。所以,這時的空格基本上是等於白按。(2)如果你在%d前面加上一個空格,如scanf("(空格)%d",a);,跟第(1)項的內容還是一樣的。(3)當輸入的是字串時,比如scanf("%c",a);這時你輸入的所有內容都是有效的,但它只取第一個字元。如你輸入”abc(回車)",則a="a",後面的字元也等於沒用上。如果你按的是“(空格)abc(回車)”,則a=(空格)——還是第一個空格!!如果按“(空格)(空格)(空格)(回車)”則a=(空格)——因為第一個字元是空格。(4)如果你在%c前面加上一個空格,如scanf("(空格)%c",a);,這時出現了變化!!它直接把前面的空格忽視,你如果這時按“abc(空格)(回車)”,則仍然a="a",可是你這時如果按(空格)abc(回車)”,則a=“a"——最前面的那一個空格被忽視了!!最可恨的是當你按“(空格)(空格)(空格)(回車)”時,程式還在等待中,它把你按的空格全部忽視了。分析到這兒(應該說還沒有分析完全),你應該知道空格的作用了,所以,出現了你發出來的上圖的情況,你自己分析原因吧!為避免出錯,一般不要加入空格。