根据ASCII表,新行字符(\ n)的值为13,而回车符(CR)的值为13。当试图编写一个程序,检测是否按下了输入键。使用这两个值是否安全?
if( ( kr=getchar() ) == 13 )
puts("Enter Key Pressed ") ;
或
if( ( kr=getchar() ) == '\n' )
puts("Enter Key Pressed ") ;
答案 0 :(得分:4)
简短回答:您应该始终使用'\n'
。
更长的回答:是的,回车符是ASCII 13,在C.中是'\r'
。
换行符是ASCII 10(不是13),在C中是'\n'
。
但是您按下的键不必然与您在C程序中收到的字符相同,原因有两个:
'\n'
。即使底层操作系统有不同的约定,在正常情况下,您的程序应该为新行接收'\n'
。 (类似地,当您打印'\n'
时,它会转换为回车符,换行符或回车符/换行符对,具体取决于您的操作系统惯例。)最后,无论你做什么,即使你确实需要明确处理回车,请在C程序中使用'\r'
和'\n'
。不要让读者知道幻数10和13(或0x0a和0x0d)是什么。
答案 1 :(得分:2)
您可以使用其中任何一个,但您绝对应该使用\n
,因为人们可以在没有外部参考的情况下阅读它。
答案 2 :(得分:0)
我认为两个值都是相同的,但是为了使代码更易读,您应该使用" \ n",或者在另一种情况下使用注释来解释您对键盘的期望。