根據ASCII表格,新行字符(\ n)的值是13,而回車符(CR)的值是13。當試圖編寫一個檢測是否按下Enter鍵的程序時。它可以安全使用任一值? n和CR之間的區別
if((kr=getchar()) == 13)
puts("Enter Key Pressed ") ;
或
if((kr=getchar()) == '\n')
puts("Enter Key Pressed ") ;
根據ASCII表格,新行字符(\ n)的值是13,而回車符(CR)的值是13。當試圖編寫一個檢測是否按下Enter鍵的程序時。它可以安全使用任一值? n和CR之間的區別
if((kr=getchar()) == 13)
puts("Enter Key Pressed ") ;
或
if((kr=getchar()) == '\n')
puts("Enter Key Pressed ") ;
簡答:您應該始終使用'\n'
。
較長的回答:是的,回車是ASCII 13是C. '\r'
換行符是ASCII 10(不是13),是C.
'\n'
但你按下鍵是不一定相同作爲你將在C程序中收到的角色,原因有兩個:
'\n'
。即使底層操作系統有不同的約定,在正常情況下,您的程序應該會收到'\n'
換行。 (同樣,當您打印'\n'
,它被翻譯成回車換行或回車/換行對,這取決於你的操作系統的約定。)最後,無論你做什麼,即使你需要明確處理Carriage Return,請在C程序中使用'\r'
和'\n'
。不要讓讀者知道什麼是數字10和13(或0x0a和0x0d)。
您可以使用一個,但你絕對應該使用\n
因爲人們可以在沒有外部參考閱讀。
通過外部參考,你的意思是ascii表? –
@DogusUral:是的。 –
我覺得這兩個值都是一樣的,但是爲了製作更易讀的代碼,您應該使用「\ n」,或者在另一種情況下使用註釋來解釋您通過鍵盤所期望的內容。
C不保證使用ASCII。 –
簡短回答是:使用'\ n' – nikaltipar
換行符的值是10。所以你的問題沒有多大意義。 – Lundin